小编Ger*_*ard的帖子

如何避免嵌套对象中的"未定义"错误

我正在寻找一些好的策略来避免JavaScript中的错误,当使用点符号来调用可能存在或不存在的对象中的子项的子项时.

在下面的代码片段的底部是一个有效的解决方案示例,但是不够优雅(充其量).

很高兴看到一些本机JavaScript解决方案甚至外部库可以帮助避免这种错误.

const object1 = {
  foo: {
    bar: {
      baz: 'payload'
    }
  }
};


const object2 = {};

const array = [object1, object2];

// this will fail on object2 because obj.foo is undefined
array.forEach(obj => {
    if (obj.foo.bar.baz) {
      console.log(obj.foo.bar.baz);
     } else {
      console.log('undefined');
     }
  } 
);

// this will work, but it's horrible to write all those nested if statements.
array.forEach(obj => {
    if (obj) {
      if (obj.foo) {
        if (obj.foo.bar) {
          if (obj.foo.bar.baz) {
          console.log(obj.foo.bar.baz);
          } …
Run Code Online (Sandbox Code Playgroud)

javascript javascript-objects

4
推荐指数
2
解决办法
1160
查看次数

标签 统计

javascript ×1

javascript-objects ×1