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)