【发布时间】:2020-02-10 07:23:24
【问题描述】:
我对 Js 数组没什么问题。我有两个数组 - 一个始终正确(使用正确的数据创建),一个基本上来自获取。我正在尝试比较这两个数组,我能够得到它们匹配的项目,但不能得到不匹配的项目:
var results = [];
var controlArray = ['T', 'M', 'P', 'N']
var fetchArray = ['T', 'M', 'PP', 'N ']
for (var i = 0; i < controlArray.length; i++) {
for (var j = 0; j < fetchArray.length; j++) {
if (controlArray[i] === fetchArray[j]) {
results.push(fetchArray[i]);
}
}
}
输出应该是这样的:
results = ['PP', 'N '];
或:
results = ['P', 'N'];
所以它会指出问题出在哪里。这两种方法都有效。
这给了我匹配的部分。我试图只放 !== 但在那种情况下,它基本上会多次抛出所有东西,我看不出逻辑为什么它不应该那样工作。空白也很重要。
有什么想法可以轻松地从这些数组中取出不匹配的值吗?
【问题讨论】:
-
你能分享你数组中数据的sn-p吗?
-
请添加想要的结果。数组是排序的还是你只需要缺少的或共同的部分?
-
你可以试试:
results = controlArray.filter(e => !fetchArray.includes(e)) -
你想将第一个项目与第一个匹配等等吗?
标签: javascript