根据另一个数组值将项目添加到数组
Adding items to an array based on another array value
我有 3 个数组
var arr1 = ["2", "3", "1"],
arr2 = ["x", "y", "z"],
arr3 = [];
如何根据 arr1
编号顺序将 arr2
中的项目调用到 arr3
中?示例:
arr3 = ["y", "z", "x"];
对于 0 个索引数组编号
for(var i = 0; i < arr1.length; i++){
arr3.push(arr2[arr1[i]])
}
或者因为您使用的是 1 个索引数组
for(var i = 0; i < arr1.length; i++){
arr3.push(arr2[arr1[i] - 1])
}
您可以尝试这样的操作:
var arr1 = ["2", "3", "1"],
arr2 = ["x", "y", "z"],
arr3 = [];
arr3=arr1.map(function(i){return arr2[i-1]});
console.log(arr3)
如果 arr1
的值与键不对应,例如 arr1 = [50, 4, -2, 999]
,那么这是一个令人费解的答案:
arr1.map(function(val, key){ return [val, key] })
.sort(function(a,b){ return a[0]-b[0] })
.map(function(a){ return arr2[a[1]] })
我有 3 个数组
var arr1 = ["2", "3", "1"],
arr2 = ["x", "y", "z"],
arr3 = [];
如何根据 arr1
编号顺序将 arr2
中的项目调用到 arr3
中?示例:
arr3 = ["y", "z", "x"];
对于 0 个索引数组编号
for(var i = 0; i < arr1.length; i++){
arr3.push(arr2[arr1[i]])
}
或者因为您使用的是 1 个索引数组
for(var i = 0; i < arr1.length; i++){
arr3.push(arr2[arr1[i] - 1])
}
您可以尝试这样的操作:
var arr1 = ["2", "3", "1"],
arr2 = ["x", "y", "z"],
arr3 = [];
arr3=arr1.map(function(i){return arr2[i-1]});
console.log(arr3)
如果 arr1
的值与键不对应,例如 arr1 = [50, 4, -2, 999]
,那么这是一个令人费解的答案:
arr1.map(function(val, key){ return [val, key] })
.sort(function(a,b){ return a[0]-b[0] })
.map(function(a){ return arr2[a[1]] })