【问题标题】:sort an object in javascript, according to parent object.(react)根据父对象对javascript中的对象进行排序。(反应)
【发布时间】:2019-10-02 08:23:22
【问题描述】:

我有父对象,其中数据显示如下: 姓名第一,性别第二,地址第三

[{name: "alpesh solanki", gender: "male", address: "makarpura GIDC, GIDC Makarpura"},
{name: "alpes", gender: "female", address: "222makarpura GIDC, GIDC Makarpura"}]

我想在上面的数组中推送另一个对象,但是传入的数据是杂乱无章的,例如

{address: "makarpura GIDC, GIDC Makarpura", gender: "male", name: "alpesh solanki"}

从某种意义上说,address是第一,gender是第二,name是第三

但是我想按照父对象来排列。

【问题讨论】:

  • 您必须为您的订单创建一个新对象。但是属性的顺序永远无法保证,所以不要依赖它。
  • 大多数浏览器保持定义顺序,但这不是必需的。但这应该没关系。如果您必须依赖对象中键的顺序,则结构通常不是最佳的。为什么您需要按顺序排列钥匙?

标签: javascript arrays reactjs sorting object


【解决方案1】:

排序方法是将具有所需键的对象按顺序作为模板,并通过将属性分配给具有空对象、模板和实际对象的新对象来映射所有对象。

结果是一个包含对象属性的数组。

var data = [{ name: "alpesh solanki", gender: "male", address: "makarpura GIDC, GIDC Makarpura" }, { name: "alpes", gender: "female", address: "222makarpura GIDC, GIDC Makarpura" }],
    template = { address: null, gender: null, name: null },
    result = data.map(o => Object.assign({}, template, o));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

【讨论】:

    【解决方案2】:

    您不能对对象中的属性进行排序。

    但是,如果您想对数组的每个对象中的属性进行排序,您可以使用 Array.prototype.map()Destructuring assignment 方法创建一个新的 newData 数组,并使用所需的属性顺序 data.map(({address, gender, name}) => ({address, gender, name}))

    代码:

    const data = [{name: "alpesh solanki", gender: "male", address: "makarpura GIDC, GIDC Makarpura"}, {name: "alpes", gender: "female", address: "222makarpura GIDC, GIDC Makarpura"}];
    const newData = data.map(({address, gender, name}) => ({address, gender, name}));
    
    console.log(newData);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-18
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 2013-11-25
      • 2018-03-18
      • 1970-01-01
      相关资源
      最近更新 更多