根据第一个单词对对象数组进行排序
Sort an array of objects based on first word
我希望能够根据字符串中的第一个单词在JavaScript中对数组(一个对象数组)进行排序。目前,我使用的排序函数使用字符串中的所有单词。
JSON数据:
"awds": [
{"awd":"adobe edge award"},
{"awd":"besty"},
{"awd":"c award"},
{"awd":"awwward award"},
{"awd":"desk award"},
{"awd":"adobe edge award"},
{"awd":"creative edge award"},
{"awd":"snoogle edge award"},
{"awd":"scuba edge award"},
{"awd":"xidoe edge award"}
]
JavaScript:
var compareNames = function(a, b) {
var nameA = a.awd.toLowerCase();
var nameB = b.awd.toLowerCase();
if (nameA > nameB) { return 1; }
return 0;
};
电流输出:
adobe edge award
besty
c award
awwward award
desk award
adobe edge award
creative edge award
snoogle edge award
scuba edge award
xidoe edge award
期望输出:
adobe edge award
adobe edge award
awwward award
c award
creative edge award
scuba edge award
snoogle edge award
xidoe edge award
var o = [
{"awd":"adobe edge award"},
{"awd":"besty"},
{"awd":"c award"},
{"awd":"awwward award"},
{"awd":"desk award"},
{"awd":"adobe edge award"},
{"awd":"creative edge award"},
{"awd":"snoogle edge award"},
{"awd":"scuba edge award"},
{"awd":"xidoe edge award"}
];
o.sort(function(a, b) {
var nameA = a.awd.toLowerCase();
var nameB = b.awd.toLowerCase();
if(nameA === nameB) return 0;
return nameA > nameB ? 1 : -1;
});
console.log(o);
演示
您可以使用带有比较功能的Array.sort
。看见https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/sort
- 排序回调应返回负数、0、正数,具体取决于参数1是否小于、等于或大于参数2
- 排序是在原件上完成的,因此您不必"分配"结果
- 您可以使用regex来提取第一个单词(我不明白您为什么要这样排序)
awds.sort(function (a, b) {
var aword = a.awd.toLowerCase().match(/[^ ]+/)[0];
var bword = b.awd.toLowerCase().match(/[^ ]+/)[0];
return aword == bword ? 0 : (aword < bword ? -1 : 1);
});
如果在第一个项目不大于第二个项目-时返回-1,则方法将工作
var compareNames = function(a, b) {
var nameA = a.awd.toLowerCase();
var nameB = b.awd.toLowerCase();
if(nameA==nameB) return 0;
return (nameA > nameB)? 1:-1;
};
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- Javascript中的多维数组排序索引问题
- 如何按日期对Javascript对象数组排序
- 数组排序后显示更改
- 当许多元素相等时,Javascript数组排序无法正常工作
- Javascript数组排序速度受字符串长度的影响
- 按唯一键将对象数组排序为数组
- 以 js 为单位的数组排序
- js 数组排序无法正常工作
- 数组排序.论点从何而来
- 不需要的数组排序
- 数组排序不正确/不可预测,使用 indexOf 时
- Javascript将数组排序到树中
- 随后的多维数组排序会产生意外的结果
- 数组排序基于纯javascript搜索文本匹配
- Javascript自定义数组按数组排序
- 使用字符串按属性错误对对象进行数组排序
- 多维数组排序
- JavaScript与PHP在数组排序中的对比
- Javascript-关联数组排序