Должно быть a[sortBy]
. Это то же самое, что и точечная нотация, за исключением того факта, что sortBy
может происходить из переменной, тогда как когда вы делаете a.sortyBy
, он ищет ключ sortyBy
(строка), а не переменную динамического c, и, следовательно, вы получаете ошибка.
let sortBy = 'birth'
let usersJSON = [
{
name: "Sania Mirza",
birth: "11/30/2011"
}, {
name: "Lata Pathak",
birth: "10/31/1999"
}, {
name: "Lata Pathak",
birth: "10/31/2020 "
}
]
usersJSON.sort(function (a, b) {
//var dateA = new Date(a.birth), dateB = new Date(b.birth); // this is working file
var dateA = new Date(a[sortBy]), dateB = new Date(b[sortBy]); // I want sorting based on "sortBy"
return dateA - dateB;
});
console.log(usersJSON)