我想知道是否有一种或多或少开箱即用的方法来完成以下操作。我可以自己写,但如果有一种新的方法可以做到这一点,我会更喜欢。我有 2 个或更多数组。该数组的每个条目可以包含一个字符串或一个对象,其中也将包含一个数组作为值。像这样
var arr1 = ["Title", {Person: ["Name", "Age"]}]
var arr2 = ["Title", {Person: ["Sex]}]
现在我也想做或多或少的一些串联。但不是
["Title", "Title" , {Person : ["Name", "Age"]},{Person, ["Sex"]}]
我想得到
["Title", {Person: ["Name", "Age", "Sex"]}]
为了获得独特的 concat,有很多东西可以找到(例如 https://github.com/thlorenz/unique-concat),但我最终仍然会得到 2 人对象。你知道有什么框架可以做到这一点吗?或者你能想出一种开箱即用的精益方法吗?
既然您提到您有两个对象,则无需使用任何其他插件或脚本。只需使用 spread 语法 作为
...arr2[1].Person
将这些值推入 arr1
:
var arr1 = ["Title", {Person: ["Name", "Age"]}]
var arr2 = ["Title", {Person: ["Sex"]}]
arr1[1].Person.push(...arr2[1].Person);
console.log(arr1);
另一种选择是使用 ES6,数组扩展。
arr1[1].Person = [...arr1[1].Person, ...arr2[1].Person];
为了应对
unique
位,您可以使用 Set
例如..
var arr1 = ["Title", {Person: ["Name", "Age"]}]
var arr2 = ["Title", {Person: ["Sex", "Age"]}]
arr1[1].Person = Array.from(
new Set([...arr2[1].Person, ...arr1[1].Person])
);
console.log(arr1);