Change position of JavaScript object key and data

2019-08-17 10:29发布

I am working on javascript object. And I want to pass data to next array in a specific sequence. like I get data like this

var obj = [{
  0: "Owner Name"
  1: "Mailing Address"
  2: "Situs Address"
  3: "APN"  
}]

And want this sequence to be like this

var obj = [{
  3: "APN"  
  0: "Owner Name"
  2: "Situs Address"  
  1: "Mailing Address" 
}];

Is it possible to do that, on bases of data? As I don't know from database sequence maybe change. edit: For those who are saying I should use array. I am getting data on basis of this object like,

 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" }]

3条回答
我想做一个坏孩纸
2楼-- · 2019-08-17 10:33

Object not have sorting property

so you can do like this,

Covert the array object arguments into individual object.then sorting with dec order of the key

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)

查看更多
三岁会撩人
3楼-- · 2019-08-17 10:46

The properties in an object are not, and can not be, ordered in any way, so what you're trying to do is not possible. If you want to have a guaranteed order to the values put them in an array instead.

For those who are saying I should use array. I am getting data on basis of this object

In this case you can use Object.keys() and map() to convert the object to an array:

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);

查看更多
Anthone
4楼-- · 2019-08-17 10:48

The keys in a JavaScript object do not have any order. They will be displayed in any order and can change because order is not preserved.

If you need your data in a particular order, use an Array.

Example of an array of strings preserving order

var orderedItems = [
  "3: APN",
  "0: Owner Name",
  "2: Situs Address",
  "1: Mailing Address"
];
查看更多
登录 后发表回答