【发布时间】:2015-09-15 13:57:08
【问题描述】:
我有 2 个数组,需要匹配其中的数据。我需要从第一个数组中获取ID,从第二个数组中获取market_name。我需要使用这两个数组,即使wgg 数组看起来无关紧要。我使用if 匹配数据:item.market_name == wgg[j].market_name 它运行良好,但如果有多个具有相同market_name 的值,如下所示,它会为它们打印所有相同的 ID。例如,它打印的内容如下:
market_name | ID
John | 151
John | 151
John | 151
Sam | 115
Somebody | 110
第一个数组(项目):
market_name | ID
John | 151
John | 100
John | 180
Sam | 115
Somebody | 110
第二个数组(wgg[j]):
market_name | ID
John | 105
John | 209
John | 401
Sam | 115
Somebody | 110
应该如何:
market_name | ID
John | 151
John | 100
John | 180
Sam | 115
Somebody | 110
JS:
tradedata.forEach(function(item, j) {
var resultas = tradedata.filter(function(item) {
if (item.market_name == wgg[j].market_name) {
assetas = item.id;
return assetas;
}
});
if (resultas.length > 0) {
console.log(wgg[j].market_name);
console.log(assetas);
}
}
【问题讨论】:
-
但是您将它们都与
return item.market_name == wgg[j].market_name;相等,它不应该返回相同的数据吗? -
@developer 我试过
return assetas;,但还是一样。 -
如果您要问的是,我如何找到数组中匹配的第一个元素,请查看 Array.prototype.indexOf() - developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
-
required输出看起来与第一个数组相同 - wgg 数组如何影响输出? -
wgg 数组用于market_name,item 数组用于ID。
标签: javascript arrays node.js