js算法全归纳(四)对象与类:对象常用操作总结
程序员文章站
2022-04-10 12:03:31
...
文章目录
题目来源于牛客网前端专题:
https://www.nowcoder.com/ta/front-end?page=1
https://www.nowcoder.com/ta/js-assessment
一、创建对象
遍历对象+判断对象类型+指针引用嵌套的对象空间
1.根据包名,在指定空间中创建对象
题目描述
根据包名,在指定空间中创建对象
输入描述:
namespace({a: {test: 1, b: 2}}, ‘a.b.c.d’)
输出描述:
{a: {test: 1, b: {c: {d: {}}}}}
原题:https://www.nowcoder.com/practice/a82e035501504cedbe881d08c824a381?tpId=2&tqId=10854&tPage=1&rp=1&ru=/ta/front-end&qru=/ta/front-end/question-ranking
function namespace(oNamespace, sPackage) {
var arr = sPackage.split(".");//按顺序储存属性值
var obj = oNamespace;//新建指针指向对象
for (var i = 0; i < arr.length; i++) {//遍历属性值
//对象中没有该属性,或者对象中该属性是一个基础数据结构
if (!obj.hasOwnProperty(arr[i]) || !(obj[arr[i]] instanceof Object)) {
obj[arr[i]] = {};//给该属性赋值空对象
}
//将指针指向这个内部对象
obj = obj[arr[i]];
}
return oNamespace;//因为obj只是对原对象的引用,原对象已被修改,最后返回原对象的值
}
namespace({ a: { test: 1, b: 2 } }, "a.b.c.d");