Сортировка массива по возрасту - PullRequest
0 голосов
/ 19 сентября 2018

Моя функция сортирует массив по возрасту, но по какой-то причине он не работает?

Другой код, чтобы вы знали, что я вызываю, имя массива и т. Д.

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

1 Ответ

0 голосов
/ 19 сентября 2018

Это то, что вы ищете: Сортировать массив объектов по строковому значению свойства в 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)

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...