以下的newar数组里的val键值排序要求:字串按长度排序,长度一样按字母顺序排序
/*
* js实现数组中的字符串按长度排序,长度一样按字母顺序排序。
* */
function sortByLenByazAZVal(array) {
array.sort((a, b) => {
if (a.val.length !== b.val.length) {
return a.val.length - b.val.length
} else {
return a.val.localeCompare(b.val);
}
})
return array
}
newar = [
{val: 'yard', value: 1, len: 4},
{val: 'I', value: 1, len: 1}, {val: 'My', value: 1, len: 2}, {val: 'is', value: 1, len: 2},
{val: 'am', value: 1, len: 2},
{val: 'house', value: 1, len: 5},
{val: 'sister', value: 1, len: 6}
]
console.log(sortByLenByazAZVal(newar));
输出:

复习:
字符串的对比方法l:
a.val.localeCompare(b.val) string.localeCompare(targetString,locales,options);
返回值大于0:说明当前字符串string大于对比字符串targetString
返回值小于0:说明当前字符串string小于对比字符串targetString
返回值等于0:说明当前字符串string等于对比字符串targetString
该代码示例展示了如何使用JavaScript的sort函数和localeCompare方法,对包含字符串对象的数组进行排序,首先按字符串长度升序排序,长度相同时按字母顺序升序排列。
1万+

被折叠的 条评论
为什么被折叠?



