这是我的数据集
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/