欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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");
相关标签: 对象