我正在研究javascript对象。我想以特定的顺序将数据传递给下一个数组。就像我得到这样的数据
var obj = [{
0: "Owner Name"
1: "Mailing Address"
2: "Situs Address"
3: "APN"
}]
希望这个序列像这样
var obj = [{
3: "APN"
0: "Owner Name"
2: "Situs Address"
1: "Mailing Address"
}];
是否有可能在数据的基础上这样做?因为我不知道从数据库序列可能会改变。 编辑:对于那些说我应该使用数组的人。我正在获取基于此对象的数据,如
var data[{
0:"CHANCE WILLIAM C & KATHRYN L"
1:"P O BOX 7642 CHICO CA 95927"
2:"LOT 4 PM 150-99/100"
3:"040-310-086-000" }]
答案 0 :(得分:1)
JavaScript对象中的键没有任何顺序。它们将以任何顺序显示,并且可以更改,因为订单不会保留。
如果您需要特定订单的数据,请使用数组。
保留顺序的字符串数组示例
var orderedItems = [
"3: APN",
"0: Owner Name",
"2: Situs Address",
"1: Mailing Address"
];
答案 1 :(得分:1)
对象中的属性不是,也不能以任何方式排序,因此您尝试做的事情是不可能的。如果您希望对值进行保证,则将它们放入数组中。
对于那些说我应该使用数组的人。我正在根据这个对象获取数据
在这种情况下,您可以使用Object.keys()
和map()
将对象转换为数组:
var data = [{
0: "CHANCE WILLIAM C & KATHRYN L",
1: "P O BOX 7642 CHICO CA 95927",
2: "LOT 4 PM 150-99/100",
3: "040-310-086-000"
}];
var arr = Object.keys(data[0]).map(function(k) {
return data[0][k];
});
console.log(arr);
答案 2 :(得分:1)
对象没有排序属性
所以你可以这样做,
将数组对象参数转换为单个对象。然后使用键的dec
顺序排序
var obj = [{
'0': "Owner Name",
'1': "Mailing Address",
'2': "Situs Address",
'3': "APN" ,
}];
var array = Object.keys(obj[0]).map(function(a){
return ({[a]:obj[0][a]});
}) //recreate with individual object
var sorted= array.sort((a,b)=> Object.keys(b)-Object.keys(a))
console.log(sorted) //sorted object
var res = sorted.map(a=> Object.values(a)[0]) // for array
console.log(res)