Change position of JavaScript object key and data

别说谁变了你拦得住时间么 提交于 2019-12-12 03:27:53

问题


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

回答1:


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)



回答2:


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



回答3:


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


来源:https://stackoverflow.com/questions/44965155/change-position-of-javascript-object-key-and-data

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!