【发布时间】:2020-02-09 22:17:13
【问题描述】:
我有两个对象数组。我在函数之前将它们连接在一起。我还有按道具对数组进行排序的功能。在能见度方面遇到了一些问题。
我需要做什么?
我需要将我的两个数组放在函数中并将它们连接在里面,最后我想要一个具有这种结构的函数:
函数 sortBy(arr1, arr2, key) { ... }
只需将所需的道具放入控制台即可记录我的功能。
感谢您的帮助。
const listObjects = [
{name: 'Kolya', age: 34},
{name: 'Valya', age: 1},
{name: 'Nesver', age: 24},
{name: 'Valera', age: 61},
{name: 'Ira', age: 15}
];
const people = [
{name: 'Andrey', age: 26, budget: 101000},
{name: 'Masha', age: 25, budget: 80000},
{name: 'Dima', age: 18, budget: 90000},
{name: 'Egor', age: 45, budget: 151000},
{name: 'Sveta', age: 14, budget: 70000},
{name: 'Stas', age: 21, budget: 30000},
{name: 'Dasha', age: 17, budget: 15000}
];
const x = listObjects.concat(people);
function sortBy(key) {
let sortOrder = 1;
if(key[0] === "-") {
sortOrder = -1;
key = key.substr(1);
}
return function (a,b) {
let result = (a[key] < b[key]) ? -1 : (a[key] > b[key]) ? 1 : 0;
return result * sortOrder;
}
}
console.log(x.sort(sortBy('name')));
【问题讨论】:
-
你在找这个吗:
(a, b, key) => a.concat(b).sort(by(key))? -
@georg 你能解释一下我如何在我的函数中使用它吗?
-
那个 sn-p 回答了您的请求:“我需要将我的两个数组放在函数中并将它们连接在里面,最后我想要一个具有这种结构的函数:函数 sortBy(arr1, arr2, key) { ... }"
-
我不确定您的问题是什么,您的代码似乎运行良好。你能试着改写一下吗。 “能见度问题”。不知道你的意思
标签: javascript arrays function concat