gpt4 book ai didi

Javascript 将数组元素相互组合的最有效方法

转载 作者:行者123 更新时间:2023-11-28 12:12:30 25 4
gpt4 key购买 nike

我正在尝试将字符串数组与独特的组合相结合,例如“Mark | Tom”但没有“Tom | Mark”

我写了这段代码:

let arr = ['Tom', 'Danny', 'Mark']
let sets = []

for (let i = 0; i < arr.length; i++) {
let others = arr.filter(name => name != arr[i])
others.forEach((other) => {

let newel = arr[i] + '|' + other
let test = newel.split('|')
if (sets.includes(test[1] + '|' + test[0]) || sets.includes(newel)) return

sets.push(newel)
})

}

console.log(sets)

这是迭代每个数组元素,然后从基本数组创建另一个由其他元素组成的数组,然后迭代它们(再次迭代),创建一个组合,检查我们的元素是否存在反向组合(如果这是在之前的循环),如果没有这样的组合=将其推送到目标数组。

有更优雅的方法来完成这项任务吗?

最佳答案

这个怎么样:

const arr = ['Tom', 'Danny', 'Mark'];
const sets = [];

for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
sets.push(arr[i] + '|' + arr[j]);
}
}

console.log(sets);

您还可以在开始计算之前使 arr 唯一:

const arr = [...new Set(['Tom', 'Danny', 'Mark', 'Tom'])]; // ['Tom', 'Danny', 'Mark']

关于Javascript 将数组元素相互组合的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57949330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com