【发布时间】:2013-06-28 05:49:47
【问题描述】:
我有 2 个数组,
arr1 = [
['itemid-1', 'itemclass', 'timestamp'],
['itemid-2', 'itemclass', 'timestamp'],
['itemid-3', 'itemclass', 'timestamp'],
['itemid-5', 'itemclass', 'timestamp']
];
arr2 = [
['itemid-1', 'data-state', 'data-col'],
['itemid-3', 'data-state', 'data-col'],
['itemid-4', 'data-state', 'data-col']
];
最终结果应该是:
arr1 = [
['itemid-1', 'itemclass', 'timestamp', 'data-state', 'data-col'],
['itemid-2', 'itemclass', 'timestamp'],
['itemid-3', 'itemclass', 'timestamp', 'data-state', 'data-col'],
['itemid-5', 'itemclass', 'timestamp']
];
我想合并从 arr2 到 arr1 的值,其中 itemid-x 是相同的。
我可以通过使用循环来做到这一点,
for(i = 0; i < arr1.length; i++){
for(j = 0; j < arr2.length; j++){
if(arr1[i][0] == arr2[j][0]){
arr1[i] = arr1[i].concat(arr2[j].slice(1));
}
}
}
但是我最近开始使用 underscorejs 和 nodejs,所以我想知道是否可以使用任何现有功能来完成。
PS:我发现this answer 很有趣,但它要求数组的长度相同,如果两个数组中的itemid-x 索引不同,它也将不起作用。
【问题讨论】:
-
所以您的代码可以正常工作,而您只是想寻找一种更简洁的方法来实现它?
-
是的,当然,我也已经在使用下划线了,不介意添加其他库。
-
您的代码使用原生 JavaScript 函数。恕我直言,您不需要其他任何东西,只需使用它即可。
标签: javascript arrays node.js underscore.js