Javascript按键推送数据

时间:2018-10-17 11:10:29

标签: javascript yaml

我下面有这些数据,我想放入一个数组,但按名称(x)排序

以下是数据:

params:
  name2:
    height: 2
  name0:
    height: 0
  name1:
    height: 3

这是代码:

 data.f = []

  Object.keys(data.params).forEach((key, idx) => {
      data.f.push({
          ...data.params[key],
          name: `${idx} - ${key}`
      });
  })

目前,它只是在读取它时将其推入数组中,但是没有排序。

在读取时或填充后如何订购?

2 个答案:

答案 0 :(得分:0)

之后,您可以将sort函数与自定义的compareFunction一起使用

data.f.sort((a,b) => a.name > b.name)

此外,如果我建议的话,您无需创建数组并将其推入。 您可以只使用map函数并编写:

data.f = Object.keys(data.params).map((key, idx) => {
  return {
      ...data.params[key],
      name: `${idx} - ${key}`
  };
});

答案 1 :(得分:0)

Object.keys(data.params)
.sort((a,b) => data.params[a].height > data.params[b].height)
.forEach((key, idx) => {
      data.f.push({
          ...data.params[key],
          name: `${idx} - ${key}`
      });
  })