Javascript 从另一个具有特定索引的数组创建数组
我有两个数组,一个是数据数组,一个是索引数组:Javascript 从另一个具有特定索引的数组创建数组,javascript,arrays,Javascript,Arrays,我有两个数组,一个是数据数组,一个是索引数组: var data = [ 'h', 'e', 'l', 'l', 'o', ' ' ]; var indices = [ 4, 0, 5, 0, 1, 2, 2 ]; 我想创建第三个数组,使用数据的单元格,按照索引中所示的顺序,因此它将是: ['o', 'h', ' ', 'h', 'e', 'l', 'l'] 我知道我可以通过一个简单的循环轻松完成: var newArray = new Array(indices.lengt
var data = [
'h', 'e', 'l', 'l', 'o', ' '
];
var indices = [
4, 0, 5, 0, 1, 2, 2
];
我想创建第三个数组,使用数据
的单元格,按照索引
中所示的顺序,因此它将是:
['o', 'h', ' ', 'h', 'e', 'l', 'l']
我知道我可以通过一个简单的循环轻松完成:
var newArray = new Array(indices.length);
for (var i in indices) {
var index = indices[i];
newArray.push(data[index]);
}
但我想知道是否有一种更干净/更简单的方法来实现它,比如数组方法或特殊构造函数?您可以这样使用
var数据=[
‘h’、‘e’、‘l’、‘l’、‘o’、’
];
风险值指数=[
4, 0, 5, 0, 1, 2, 2
];
var res=index.map(函数(el){
返回数据[el];
});
控制台日志(res)代码>您也可以使用地图
var newArray = indices.map(function(i){
return data[i]
});
您可以使用while循环:
var数据=[
‘h’、‘e’、‘l’、‘l’、‘o’、’
];
风险值指数=[
4, 0, 5, 0, 1, 2, 2
];
var l=指数。长度,
newArray=[];
而(l--)
newArray[l]=数据[index[l]];
log(newArray)代码>