Lodash的“ uniqBy”条件用于减少重复的数组值

时间:2019-01-22 06:18:03

标签: arrays typescript sorting lodash

所以我有一个具有这种格式的数组的集合。

var innitialArray = [
[0:"Hello", 1:"World", 3: "Wow", 4:"I WANT MORE"],
[0:"Hello", 1:"World", 3: "Wow", 4:"MORE I WANT"],
[0:"Meow", 1:"World", 3: "Wow", 4:"MORE I WANT"],
[0:"Meow", 1:"World", 3: "Wow", 4:"I WANT MORE"]
];

我试图通过使用此代码来使用loadash _.uniqBy方法。

let uniq_ws_data = _.uniqBy(ws_data_initial, function (e) {
return e[0];
});

我在上面的代码中得到的是这个数组:

var uniq_ws_data = [
[0:"Hello", 1:"World", 3: "Wow", 4:"I WANT MORE"],
[0:"Meow", 1:"World", 3: "Wow", 4:"I WANT MORE"],
];

但是我期望的结果是:

var uniq_ws_data = [
[0:"Hello", 1:"World", 3: "Wow", 4:"I WANT MORE"],
[0:"Meow", 1:"World", 3: "Wow", 4:"MORE I WANT"],
];

也尝试更改return e[0] to e[4],但我得到了这个:

var uniq_ws_data = [
[0:"Hello", 1:"World", 3: "Wow", 4:"I WANT MORE"],
[0:"Hello", 1:"World", 3: "Wow", 4:"MORE I WANT"],
];

有没有办法达到我的预期结果?

使用的代码:

let uniq_ws_data = _.uniqBy(ws_data_initial, function (e) {
return e[0];
});

预期结果:

var uniq_ws_data = [
[0:"Hello", 1:"World", 3: "Wow", 4:"I WANT MORE"],
[0:"Meow", 1:"World", 3: "Wow", 4:"MORE I WANT"],
];

1 个答案:

答案 0 :(得分:1)

我不知道您如何设法运行此代码,但是从语法上讲这是不正确的。我假设您希望UserInformation是一个数组数组。

工作示例:

initialArray
const initialArray = [
  ["Hello", "World", "Wow", "I WANT MORE"],
  ["Hello", "World", "Wow", "MORE I WANT"],
  ["Meow", "World", "Wow", "MORE I WANT"],
  ["Meow", "World", "Wow", "I WANT MORE"]
];

const result = _.uniqBy(initialArray, _.first);

console.log(result);