Javascript合并到数组中,在某些索引处具有相同的值
我有两个要合并的数组,但如果第一个数组的索引0处的值与第二个数组的索引0处的值相同,则必须在同一个数组中。 更多详情: 阵列1: 阵列2:Javascript合并到数组中,在某些索引处具有相同的值,javascript,arrays,merge,Javascript,Arrays,Merge,我有两个要合并的数组,但如果第一个数组的索引0处的值与第二个数组的索引0处的值相同,则必须在同一个数组中。 更多详情: 阵列1: 阵列2: var arr2 [ ["999974", 1], ["SP.SAMBACR803805", 1], ["SP29193", 1], ["SP29372", 4], ["SP324035", 3] ] 如您所见(在本例中),第一个数组有另一个
var arr2 [
["999974", 1],
["SP.SAMBACR803805", 1],
["SP29193", 1],
["SP29372", 4],
["SP324035", 3]
]
如您所见(在本例中),第一个数组有另一个4个数组和3个项目,第二个5个数组和2个项目。
arr1[3][0]([“SP324035”,194110.0231])等于arr2[4][0]([“SP324035”,1])
所以我不知道热能不能达到这样的效果:
var arrfinal = [
["SP.22110000295", 1, 162.9, null], // arr1 index 0 **is not** in arr2 index 0
["SP29372", 1, 1061.6, 4], // arr1 index 0 **is** in arr2 index 0
["SP3204200014", 5, 1147.5, null], // arr1 index 0 **is not** in arr2 index 0
["SP324035", 1, 94110.0231, 3], // arr1 index 0 **is** in arr2 index 0
["999974", null, null, 1], // arr2 index 0 **is not** in arr1 index 0
["SP.SAMBACR803805",null, null, 1], // arr2 index 0 **is not** in arr1 index 0
["SP29193", null, null, 1] // arr2 index 0 **is not** in arr1 index 0
];
实际上,它不是真正的合并,因为只有索引0的值等于的数组被合并,其他数组则是拼接
我试过合并,展开拼接。。。下划线,jquery
有什么提示吗
非常感谢,,
Geo我从你的问题中了解到,你有两个数组,
arr1
和arr2
,你想生成一个新数组,arrfail
,条件如下
arr1
中的项目复制到arrfinal
arrfinal[i][0]==arr2[j][0]
,则索引1
中的arr[2][j]
项应出现在arrfinal[i]
中
arrfinal
,索引0
为arr2[j][0]
并由null
s填充,然后再追加arr2[j]
arrfinal
中的所有项目应具有相同的长度var arrfinal=[],
key_map={},
最大长度1=0,
最大长度2=0,
i、 j;
对于(i=0;i<1.length;++i){
max_len_1=Math.max(max_len_1,arr1[i].length);//查找arr1的最大长度
arrfinal.push(arr1[i].slice());//复制到final
key_map[arr1[i][0]=arrfinal.length-1;//以后的映射
}
对于(i=0;i
但是,应注意,例如,如果存在多个在索引
0
perarr1
或arr2
处具有相同值的项目,则这可能会产生意外结果
var arr1 = [
[ 'foo', 1],
['fizz', 'buzz']
];
var arr2 = [
['foo', 'bar']
['foo', 'baz']
];
会导致
[
[ 'foo', 1, 'bar', 'baz'],
['fizz', 'buzz', null ]
]
此外,如果保证这些是唯一的,那么也许你应该考虑使用对象而不是数组
非常感谢。这很有效。同时,我发现了另一个同样结果的方法。非常感谢。[
[ 'foo', 1, 'bar', 'baz'],
['fizz', 'buzz', null ]
]