以下的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