我的功能是按年龄对数组进行排序,但是由于某种原因它不起作用?
其他代码,因此您知道即时消息正在调用什么,数组名称等。
var employeeA = new Array();
var employee = new Object();
var employeeList = [];
var employeeListA = [];
var name;
var age;
var position;
var type = 3;
var canvas;
var ctx;
function setupCanvas() {
//alert("1");
canvas = document.getElementById("employeeRecords");
if (canvas.getContext) {
ctx = canvas.getContext('2d');
ctx.fillStyle = "lightblue";
ctx.rect(0, 0, 500, 500);
ctx.fill();
}
此处显示“排序年龄”代码:
function sortAge() {
type = 1;
employeeList.forEach(function(empl) {
name = empl.name;
age = empl.age;
position = empl.position;
employeeA = new Array(age, name, position);
employeeListA.push(employeeA);
});
var y = employeeListA.length;
if (y > 1) {
employeeListA.sort();
}
}
正在为排序按钮调用此代码
function arrayButtons() {
employeeListA = [];
if (type === 0) {
sortName();
} else {
if (type === 1) {
sortAge();
} else {
employeeList.forEach(function(empl) {
name = empl.name;
age = empl.age;
position = empl.position;
employeeA = new Array(name, age, position);
employeeListA.push(employeeA);
});
感谢您的帮助!欣赏它 :D
答案 0 :(得分:0)
您正在寻找的是: Sort array of objects by string property value in JavaScript
TLDR:
您可以使用数组的方法.sort
,该方法可以将比较器函数用作第一个参数。此函数接受2个参数,它们将成为for循环中的每个对象。
var employees = [
{
age: 28
},
{
age: 18
},
{
age: 35
}
];
employees.sort(
function(a, b) {
return a.age - b.age
}
);
console.log(employees)
希望这对您有所帮助。
答案 1 :(得分:0)