Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 数组删除';s与其他数组中的对象匹配_Arrays_Node.js - Fatal编程技术网

Arrays 数组删除';s与其他数组中的对象匹配

Arrays 数组删除';s与其他数组中的对象匹配,arrays,node.js,Arrays,Node.js,如果对象的值相同,我希望从中删除对象 例如 第一个数组(别名) 第二个数组(昵称) 我想从第二个数组中删除该对象,例如,如果用户ID或对象前面的数字是 '13':{bla:bla 第一个数组中的一个数字像1或13,所以最终输出应该是 { '18': { online: true, stest: 56, thnick: 'iiii', userid: 18 } } 所以我试着写这段代码 for (var i = 0, len = ol.length; i < len; i++) {

如果对象的值相同,我希望从中删除对象 例如 第一个数组(别名)

第二个数组(昵称)

我想从第二个数组中删除该对象,例如,如果用户ID或对象前面的数字是

'13':{bla:bla

第一个数组中的一个数字像1或13,所以最终输出应该是

 { '18': { online: true, stest: 56, thnick: 'iiii', userid: 18 } }
所以我试着写这段代码

for (var i = 0, len = ol.length; i < len; i++) { 
        for (var j = 0, len2 = ol2.length; j < len2; j++) { 
            //console.log('disnicknames[j].blko',disnicknames[j].blko);
            if (nicknames[i].userid === disnicknames[j].blko) {
                nicknames.splice(j, 1);
                len2=ol2.length;
                //console.log()
                console.log('length1',ol.length);
                console.log('length2',ol2.length);

            }
        }
    }
for(var i=0,len=ol.length;i
但是我得到了这个错误

TypeError:无法读取未定义的属性“userid”


好的,我建议您这样做(如果您可以使用下划线.js):


因为您实际上不是在迭代数组,而是一个对象。没有
昵称[i]
,因为它没有
索引
,只有
。您必须通过其键对其进行迭代

var disnicknames = { '1': { blko: 1 }, '13': { blko: 13 } };
var nicknames = { '1': { online: false, stest: 765767, thnick: 'kjjkjkj', userid: 1 }, '13': { online: false, stest: 87, thnick: 'nnnmm', userid: 13 },'18': { online: true, stest: 56, thnick: 'iiii', userid: 18 } };
for (var key1 in nicknames) {
  if (nicknames.hasOwnProperty(key1)) {
    for (var key2 in disnicknames) {
      if (disnicknames.hasOwnProperty(key2)) {
        if (key2 == key1) {
          delete nicknames[key1];
        }
      }
    }
  }
}
console.log(nicknames);

你确定每个i值都有昵称[i]吗?你能发布一个包含昵称、昵称、ol和ol2的console.log吗?什么是
昵称
?你能给我们看一个完整的代码吗?帖子中的输出是昵称和昵称的控制台输出,而昵称输出的长度是2,nucknames长度是3,昵称和昵称是他问题中的数组,但什么是ol和ol2?@kikiwie var kokshh=昵称;var fu=昵称;var ol=Object.keys(kokshh);var ol2=Object.keys(fu);
for (var i = 0, len = ol.length; i < len; i++) { 
        for (var j = 0, len2 = ol2.length; j < len2; j++) { 
            //console.log('disnicknames[j].blko',disnicknames[j].blko);
            if (nicknames[i].userid === disnicknames[j].blko) {
                nicknames.splice(j, 1);
                len2=ol2.length;
                //console.log()
                console.log('length1',ol.length);
                console.log('length2',ol2.length);

            }
        }
    }
_.forEach(nicknames, (value, key) => {
 _.forEach(disnicknames, (val, ke) => {
    if (key === ke) delete nicknames[key]
 })
})
var disnicknames = { '1': { blko: 1 }, '13': { blko: 13 } };
var nicknames = { '1': { online: false, stest: 765767, thnick: 'kjjkjkj', userid: 1 }, '13': { online: false, stest: 87, thnick: 'nnnmm', userid: 13 },'18': { online: true, stest: 56, thnick: 'iiii', userid: 18 } };
for (var key1 in nicknames) {
  if (nicknames.hasOwnProperty(key1)) {
    for (var key2 in disnicknames) {
      if (disnicknames.hasOwnProperty(key2)) {
        if (key2 == key1) {
          delete nicknames[key1];
        }
      }
    }
  }
}
console.log(nicknames);