gpt4 book ai didi

javascript - 混合 2 个数组的内容

转载 作者:行者123 更新时间:2023-11-30 09:52:07 25 4
gpt4 key购买 nike

我有 2 个数组:

var arr1 = [1, 1, 2, 3, 4, 4];
var arr2 = [];

arr1 定义了一些组,组成员按位置定义。所以组成员01属于组1,
成员 2 属于组 2,
成员 3 属于组 3,
组成员 45 属于组 4

我想将组及其成员加载到另一个数组中,这样我看起来像:

arr2 = [[0,1], [2], [3], [4,5]];

所以 1 组有成员 01 等等...

做的时候:

for(i=0; i<arr1.length; i++){
arr2[arr1[i]] = i;
}

我得到:

arr2 = [1: 1, 2: 2, 3: 3, 4: 5];

最佳答案

你几乎做对了,但你需要为 arr2 中的每个索引创建一个数组,然后将 i 附加到它:

for(i=0; i<arr1.length; i++){
arr2[arr1[i]] = arr2[arr1[i]] || []; // create array here if none exists yet
arr2[arr1[i]].push(i) // add i to array
}

请注意,这会与您想要的解决方案产生一对一的差异(第一组将位于索引 1,而不是您解决方案中的索引 0) , 所以你可以将 arr2 的索引向下移动一个:

for(i=0; i<arr1.length; i++){
arr2[arr1[i]-1] = arr2[arr1[i]-1] || [];
arr2[arr1[i]-1].push(i)
}

请注意,如果 arr2 结果中存在间隙,您还没有指定所需的行为。在这种情况下,索引在输出数组中保持未设置状态。

关于javascript - 混合 2 个数组的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35926731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com