美文网首页
js 获取 obj 中指定的属性值

js 获取 obj 中指定的属性值

作者: RQrry | 来源:发表于2019-09-24 23:20 被阅读0次

    给定 javascript 对象

    const obj = {
      a: {
        b: {
          c: {
            d: {
              e: 1
            }
          }
        }
      }
    };
    

    编写一个函数获取 obj 中指定的属性值

    const getValue = function (obj, str) {
      if (typeof str !== 'string') {
        return '参数类型错误';
      }
      const index = str.indexOf('.');
      if (index < 0) {
        if (!obj[str]) {
          return '没有对应的属性值';
        } else {
          return obj[str];
        }
      }
      const preStr = str.slice(0, index);
      const restStr = str.slice(index + 1);
      if (obj[preStr]) {
        return getValue(obj[preStr], restStr);
      } else {
        return '没有对应的属性值';
      }
    }
    
    console.log(getValue(obj, 1)); // 参数类型错误
    console.log(getValue(obj, 'a.b.c.d.e')); // 1
    console.log(getValue(obj, 'a.b.c')); // { d: { e: 1 } }
    console.log(getValue(obj, 'a')); // { b: { c: { d: [Object] } } }
    console.log(getValue(obj, 'x')); // 没有对应的属性值
    console.log(getValue(obj, 'a.x')); // 没有对应的属性值
    console.log(getValue(obj, 'a.x.b')); // 没有对应的属性值
    

    相关文章

      网友评论

          本文标题:js 获取 obj 中指定的属性值

          本文链接:https://www.haomeiwen.com/subject/jqtiyctx.html