【问题标题】:AngularJS combining two arrays with modifying [duplicate]AngularJS结合两个数组修改[重复]
【发布时间】:2019-09-01 21:24:23
【问题描述】:

我有以下两个数组对象

27A: {id: 228, swift_code: "27", field_description: "Sequence of Total", 
line_description: "1/1 (Number)(Total)", commercial: false}

31B: {id: 230, swift_code: "31C", field_description: "Date of Issue", 
line_description: "dd/mm/yyyy", commercial: false}

31C: {id: 242, swift_code: "31D", field_description: "Expiry Date/Place 
(dd/mm/yyyy)", line_description: "IN SINGAPORE", commercial: true}

我的第二个数组

67: {id: 228, swift_code: "27", field_description: "Sequence of Total", 
line_description: "1/1 (Number)(Total)", commercial: false}

44: {id: 230, swift_code: "31C", field_description: "Date of Issue", 
line_description: "dd/mm/yyyy", commercial: false}

12: {id: 242, swift_code: "31D", field_description: "Expiry Date/Place 
(dd/mm/yyyy)", line_description: "IN SINGAPORE", commercial: true}

我想像下面这样将这两个数组组合在一起而不修改顺序,这意味着第一个数组排在第一个第二个数组第二个

如下所示

27A: {id: 228, swift_code: "27", field_description: "Sequence of Total", 
line_description: "1/1 (Number)(Total)", commercial: false}

31B: {id: 230, swift_code: "31C", field_description: "Date of Issue", 
line_description: "dd/mm/yyyy", commercial: false}

31C: {id: 242, swift_code: "31D", field_description: "Expiry Date/Place 
(dd/mm/yyyy)", line_description: "IN SINGAPORE", commercial: true}

67: {id: 228, swift_code: "27", field_description: "Sequence of Total", 
line_description: "1/1 (Number)(Total)", commercial: false}

44: {id: 230, swift_code: "31C", field_description: "Date of Issue", 
line_description: "dd/mm/yyyy", commercial: false}

12: {id: 242, swift_code: "31D", field_description: "Expiry Date/Place 
(dd/mm/yyyy)", line_description: "IN SINGAPORE", commercial: true}

我使用了合并和数组复制,但它修改了顺序

angular.merge(arraiobj1, arraiobj2); 

【问题讨论】:

  • 你可以试试推吗?
  • 它也不起作用
  • 常量合并Arr = [...firstArr, ...secArr]

标签: javascript angularjs


【解决方案1】:

我认为您在谈论对象,而不是数组。数组只有数字索引。

但 JSON 不保持秩序,与PHP 等相反。

Javascript - maintain key order when going from object -> array

例如见https://stackoverflow.com/a/31409887/781153

如果您打算用它来描述一个有序集,那么您就没有遵循 JSON 的规则。数据恰好是有序的(因为这就是字符序列的工作方式),但 JSON 语义允许实现在考虑输入字符串中存在的数据时完全忽略名称/值对的顺序。

实际上,大多数 JavaScript 引擎通常会选择按照属性创建的顺序报告键名。但是,任何规范都不需要这种行为(有时在极端情况下不一致),因此引擎和版本之间可能在法律上有所不同。

处理订单的最佳方式是使用数字数组。

【讨论】:

    【解决方案2】:

    您可以使用angular.extend(),它会将您的第一个对象附加到第二个。

    angular.extend(arraiobj1, arraiobj2); 
    

    【讨论】:

    • 不,它仍在修改数组的顺序
    • 是数组还是对象?因为,在对象中,顺序无关紧要。
    猜你喜欢
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    相关资源
    最近更新 更多