Javascript 如何将带键的数组对象转换为数组(无键)

Javascript 如何将带键的数组对象转换为数组(无键),javascript,arrays,typescript,angular6,Javascript,Arrays,Typescript,Angular6,我有这样的数组: [ {sabha_id: "Scarborough", sabha_type: 6, followup_id: 44}, {sabha_id: "Scarborough", sabha_type: 6, followup_id: 44}] 0:{sabha_id:“斯卡伯勒”,sabha_类型:6,后续_id:44} 1:{sabha_id:“Mississauga”,sabha_类型:8,后续_id:44} 我需要这样的东西: [ {sabha_id: "Scarbor

我有这样的数组:

 [ {sabha_id: "Scarborough", sabha_type: 6, followup_id: 44}, {sabha_id: "Scarborough", sabha_type: 6, followup_id: 44}]
0:{sabha_id:“斯卡伯勒”,sabha_类型:6,后续_id:44}
1:{sabha_id:“Mississauga”,sabha_类型:8,后续_id:44}

我需要这样的东西:

 [ {sabha_id: "Scarborough", sabha_type: 6, followup_id: 44}, {sabha_id: "Scarborough", sabha_type: 6, followup_id: 44}]
你可以用

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()返回的属性的顺序 由于对
Object.values()
返回的属性的迭代顺序存在一些争论,我将澄清

自ES6以来,物业退货的顺序按照规范进行订购

For..in uses
[[enumerate]]
依次使用
Reflect.ownKeys
,然后依次使用
[[OwnPropertyKeys]]
,定义为:

9.1.12[[OwnPropertyKeys]]()

当调用O的[[OwnPropertyKeys]]内部方法时 采取了以下步骤:

  • 让键成为一个新的空列表
  • 对于作为整数索引的O的每个自己的属性键P,按升序数字索引顺序 A.添加P作为键的最后一个元素
  • 对于O的每个自己的属性键P,它是一个字符串,但不是一个整数索引,按属性创建顺序 A.添加P作为键的最后一个元素
  • 对于作为符号的O的每个自己的属性键P,按属性创建顺序 A.添加P作为键的最后一个元素
  • 归还钥匙

  • 为了保证保留正确的顺序,请将其转换为类似数组的对象,方法是为其指定一个
    长度
    ,表示对象上自己的属性数

    然后可以使用
    Array.from
    对其进行转换

    var数据={
    0:{sabha_id:“斯卡伯勒”,sabha_类型:6,后续编号:44},
    1:{sabha_id:“Mississauga”,sabha_类型:8,后续_id:44}
    };
    data.length=Object.getOwnPropertyNames(data).length;
    var array=array.from(数据);
    
    console.log(数组)实际上顺序不保留,它将按整数键排序<代码>对象。值({1:1,3:3,2:2})=[1,2,3]
    。话虽如此,但无法获得源代码中的确切顺序,这可能就是OP needshere的问题所在。问题是如何获得这样的数组。@JuanMendes我试图描述的是,键的顺序将被保留,这意味着0将位于1之前,等等;)1) “Object.values()方法返回给定对象自身可枚举属性值的数组,”2)。@Andy迭代顺序在几年内都有保证。看我的编辑这似乎有点过分了。使用Object.values()@AlexandrosPanagiotakis时,您可以保证以正确的顺序获得数值属性:没有保证。这是一个常见的混淆点,因为在某些情况下,较新的方法会做出这样的保证,但是
    Object.values
    仍然保留其ES5语义。顺序在ES6中得到保证。检查我的更新答案;)@亚历山德罗帕纳乔塔基斯:我不确定你在回答中得出了那个结论。in的
    肯定不使用OwnPropertyKeys,因为in的
    访问继承的属性,而OwnPropertyKeys只访问自己的属性。此外,OwnPropertyKeys访问不可枚举的属性,而in
    中的
    则不访问。
    中的
    使用,其中说明:“未指定枚举属性的机制和顺序,但必须符合下面指定的规则。”您拥有的已经是您想要的。您的输入看起来不像数组,它是一个对象,因为它包含键
    0
    1
    等。但它也没有这种外观,因为没有大括号。请粘贴正确的,并始终确保以后提供正确的输入。这可能会帮助其他人更好地理解,就像你在为自己造福一样。