javascript 遍历数组后,判断的问题?

            var arr = [
                {
                    'id': 1,
                    'name': 22
                }, {
                    'id': 2,
                    'name': null
                },
                {
                    'id': 3,
                    'name': null
                }, {
                    'id': 4,
                    'name': 44
                }
            ];
        arr.forEach(function(val){
            if(val.name===null){
                alert(val.id + '你们的name是null');
                //如果我换成其他http请求的话,也是2次
            }
        })

这样写代码会连续弹出两次alert对话框,如果我换成其他http请求的话,就会请求2次,怎样把遍历后,把判断条件写在循环外面,一次搞定?

阅读 4.3k
7 个回答

在for循环外定义个数组,name=null的时候,就往数组里push对应的id。
最后判断数组不为空的话,就发送http请求

['a', 'b', 'c', null, null, null, 'd'].some((val) => {
  if (val === null) {
    alert('null 只 alert 一次');
    // 因为一旦返回 `true`,
    // `some`就会停止
    return true;
  }
  return false;
});

不太懂你想要什么

兄弟,有一个重要代码叫
break

如果只是判断是否有 null 值而不需要知道数量就使用 Array.prototype.some

如果想在循环完成后获取所有含有 null 值的元素,就使用 Array.prototype.reduce

组织下语言吧

新手上路,请多包涵

你有两个item里的name属性都为null吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题