索引数组。
var index = ['a','b','c','d'];
索引数组可以包含任意数量的项目。
Result是一个关联数组,其键与索引项相同:
result = [{ b:'Val1', c:'Val2', a:'Val3', d:'Val4' },{ b:'Val5', c:'Val6', a:'Val7', d:'Val8' }];
我必须使用与索引数组相同的顺序创建另一个数组。
finalRes = [{ a:'Val3', b:'Val1', c:'Val2', d:'Val4' },{ a:'Val7', b:'Val5', c:'Val6', d:'Val8' }];
任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
无法保证javascript对象中的属性顺序。如果要指定键的顺序,则必须保留有序的键数组以及生成的数组。
4.3.3对象对象是Object类型的成员。它是一个无序的属性集合,每个属性都包含一个原语 价值,对象或功能。存储在属性中的函数 对象称为方法。
答案 1 :(得分:0)
让我们看看..
var index = ['a','b','c','d'];
result = [{ b:'Val1', c:'Val2', a:'Val3', d:'Val4' },{ b:'Val5', c:'Val6', a:'Val7', d:'Val8' }];
finalRes = [{ a:'Val3', b:'Val1', c:'Val2', d:'Val4' },{ a:'Val7', b:'Val5', c:'Val6', d:'Val8' }];
可以使用循环创建最终结果;
var finalRes = [];
for (var l=0; l<result.length; l++) {
var res = {};
for(var x=0; x<index.length; x++) {
var i = index[x]; //i is the index value..
res[i] = result[l][i];
}
finalRes[l] = res;
}
我相信这应该有效..
答案 2 :(得分:0)
以下是您完全想要的完美解决方案:在此处进行测试jsfiddle。请参阅说明的注释。
var index = ['a','b','c','d'];
result = [{ b:'Val1', c:'Val2', a:'Val3', d:'Val4' },{ b:'Val5', c:'Val6', a:'Val7', d:'Val8' }];
var finalRes = [];
for (var i = 0; i<result.length; i++){
//We get each slice of result array here
//Lets begin a fresh array of this particular array
thisArray = [];
for (var j = 0; j<index.length; j++){
//Now Preparing the particular Array
var key = index[j]; //Key of Index Array
thisArray[key] = result[i][key]
// What we did just before is:
// We created an Element Inside this Particular Array with reference of index and value of result
}
finalRes.push(thisArray);
}
console.log(finalRes); //Required Array
console.log(finalRes[0]["a"]); //Checking Elements
小心!
Caution: The finalRes is NOT NUMERIC. You can't refer it like: finalRes[0][0]