【问题标题】:JavaScript. Need to concat two arrays inside the functionJavaScript。需要在函数内部连接两个数组
【发布时间】: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) =&gt; a.concat(b).sort(by(key))?
  • @georg 你能解释一下我如何在我的函数中使用它吗?
  • 那个 sn-p 回答了您的请求:“我需要将我的两个数组放在函数中并将它们连接在里面,最后我想要一个具有这种结构的函数:函数 sortBy(arr1, arr2, key) { ... }"
  • 我不确定您的问题是什么,您的代码似乎运行良好。你能试着改写一下吗。 “能见度问题”。不知道你的意思

标签: javascript arrays function concat


【解决方案1】:
  { 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);



console.log(
  x.sort(function(a, b) {
    var x = a.name.toLowerCase();
    var y = b.name.toLowerCase();
    if (x < y) {
      return -1;
    }
    if (x > y) {
      return 1;
    }
    return 0;
  })
);

你可以这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 2013-12-19
    • 2015-11-25
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    相关资源
    最近更新 更多