javascript - 根据特定键值对 JavaScript 对象重新排序

标签 javascript json object refactoring

这是我的数据集

var myData = [
  {
    key: 'female', 
    value: 1000
  },
  {
    key: 'male', 
    value: 2000
  },
  {
    key: 'unknown', 
    value: 150
  }
];

我想将这些对象从“女性 --> 男性 --> 未知”重新排序为“男性 --> 女性 --> 未知”。

我最初的解决方案是这样做:

var newAudienceArray = [];

for (var x = 0; x < myData.length; x++){
  if (myData[x].key == 'male'){
    newAudienceArray.push(myData[x]);
  }
}

for (var x = 0; x < myData.length; x++){
  if (myData[x].key == 'female'){
    newAudienceArray.push(myData[x]);
  }
}

for (var x = 0; x < myData.length; x++){
  if (myData[x].key == 'unknown'){
    newAudienceArray.push(myData[x]);
  }
}

这看起来非常冗长。有没有更简洁的解决方案?

最佳答案

您可以使用Array.prototype.sort方法:

myData.sort(function (index, data) { 
    return data.key == 'male' ? 2 : data.key == 'female' ? 1 : 0 
});

关于javascript - 根据特定键值对 JavaScript 对象重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43227487/

相关文章:

javascript - 使用 ThreeJs 的 HSL 颜色

javascript - 根据第一个字母获取元素

java - 使用spring mvc将post请求中的json内容解析为多参数

json - 使用 XQuery 检查 XML 文档的命名空间前缀是否在整个文件中被重新定义

Java - 正在执行方法的对象可以被垃圾收集吗?

javascript - 如何使用setTimeout并获取返回变量?

javascript - 通过添加break\n来重新格式化JavaScript中的字符串?

javascript - 将本地 JSON 文件读入变量

c++ - 删除对象时崩溃

java - Java中如何从链表中的节点获取对象?