我有这样的数组:
0: {sabha_id: "Scarborough", sabha_type: 6, followup_id: 44}
1: {sabha_id: "Mississauga", sabha_type: 8, followup_id: 44}
我需要这样的东西:
[ {sabha_id: "Scarborough", sabha_type: 6, followup_id: 44}, {sabha_id: "Scarborough", sabha_type: 6, followup_id: 44}]
答案 0 :(得分:0)
您可以使用
Object.values(obj)
将对象转换为数组。
在您的情况下:
let data = {
0: {sabha_id: "Scarborough", sabha_type: 6, followup_id: 44}
1: {sabha_id: "Mississauga", sabha_type: 8, followup_id: 44}
};
let array = Object.values(data);
由于有一些关于Object.values()
返回的属性的迭代顺序的争论,我将予以澄清。
自ES6开始,属性返回的顺序按照规范进行排序
For..in使用[[enumerate]]
,依次使用Reflect.ownKeys
,然后使用[[OwnPropertyKeys]]
定义为:
9.1.12 [[OwnPropertyKeys]]()
当O的[[OwnPropertyKeys]]内部方法称为 采取以下步骤:
- 让键成为一个新的空列表。
- 对于O的每个自己的属性键P(它是整数索引),以数字索引的升序排列 一种。将P添加为键的最后一个元素。
- 对于每个自己的O的属性键P(按字符串创建,但不是整数索引),按属性创建顺序 一种。将P添加为键的最后一个元素。
- 对于每个属于符号的O自己的属性键P,按属性创建顺序 一种。将P添加为键的最后一个元素。
- 返回键。
答案 1 :(得分:0)
要确保保留正确的顺序,请给其length
表示该对象自身的属性数,将其转换为类似数组的对象。
然后您可以使用Array.from
进行转换。
var data = {
0: {sabha_id: "Scarborough", sabha_type: 6, followup_id: 44},
1: {sabha_id: "Mississauga", sabha_type: 8, followup_id: 44}
};
data.length = Object.getOwnPropertyNames(data).length;
var array = Array.from(data);
console.log(array);