在Javascript上给定订单数组的对象数组

时间:2018-03-09 19:42:49

标签: javascript arrays

我正在使用Google的路线API来获取优化路线列表,给出了几点。它返回一个数组正确的数组:

[obj4, obj0, obj6, obj7, obj1, obj3, obj5, obj2]

我想使用该数组来命令我的点,这是一个对象数组:

{{1}}

得到结果:

{{1}}

为了做到这一点,我该怎么办?

4 个答案:

答案 0 :(得分:6)

您可以使用map功能。



var indexes = [4, 0, 6, 7, 1, 3, 5, 2],
    objs = ['obj0', 'obj1', 'obj2', 'obj3', 'obj4', 'obj5', 'obj6', 'obj7'],
    result = indexes.map(i => objs[i]);

console.log(result);

.as-console-wrapper { max-height: 100% !important; top: 0; }




答案 1 :(得分:0)

//googleArray = [4, 0, 6, 7, 1, 3, 5, 2]
var myArray = [];
myOldArray = [obj0, obj1, obj2, obj3, obj4, obj5, obj6, obj7];
for(var i in googleArray){
    myArray[i] = myOldArray[googleArray[i]];
}

答案 2 :(得分:0)

你可以遍历订单数组,随时建立一个新数组:

var orders = [4, 0, 6, 7, 1, 3, 5, 2];
var objects = [obj0, obj1, obj2, obj3, obj4, obj5, obj6, obj7];

var output = [];
for (var i = 0; i < orders.length; i++) {
    output.push(objects[orders[i]]);
}

答案 3 :(得分:0)

function orderArr(reference, arrayToOrder) {
    var ordArr = [];
    referenceArr.forEach((e, i) => {
        ordArr.push(arrayToOrder[e])
    })
    return ordArr;
}

你有很多选择,哈哈!

但@Ele答案是最好的答案。