根据数组中的对象的某个属性进行排序步骤
- 定义一个数组
var arr = [{
time: "2020-05",
number: 1
}, {
time: "2020-03",
number: 23
}, {
time: "2021-06",
number: 12
}, {
time: "2020-10",
number: 123
}, {
time: "2020-02",
number: 122
}]
- 去除time属性中的
-
并把它转成数字类型比较大小 - 把排序好的数转成字符串并重新添加
-
再添加到新的数组中
var arr2 = []
for (var i = 0; i < arr.length; i++) {
var str = arr[i].time
console.log(str.replace("-", ""))
arr2.push({
time: parseInt(str.replace("-", "")),
number: arr[i].number
})
}
console.log(arr2)
function compare(property) {
return function(a, b) {
var value1 = a[property];
var value2 = b[property];
return value1 - value2;
}
}
console.log(arr2.sort(compare("time")))
var arr3 = []
for (var i = 0; i < arr2.length; i++) {
var str2 = String(arr2[i].time)
console.log(str2)
console.log(str2.substring(0, 4) + "-" + str2.substring(4, 6))
var str3 = str2.substring(0, 4) + "-" + str2.substring(4, 6)
arr3.push({
time: str3,
number: arr2[i].number
})
console.log(arr3)
}