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

问题描述 投票:0回答:1

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

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"],
];
arrays typescript sorting lodash
1个回答
1
投票

我不知道你是如何设法运行此代码的,但它在语法上是不正确的。我假设你想让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);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>
© www.soinside.com 2019 - 2024. All rights reserved.