gpt4 book ai didi

JavaScript 使用对象中的键值对比较 2 个数组并查找唯一值

转载 作者:行者123 更新时间:2023-11-30 07:58:44 26 4
gpt4 key购买 nike

<分区>

我正在编写一个 diff(arr1, arr2) 函数来比较两个数组并返回一个新数组,其中包含在两个原始数组中都找不到的任何项目。

例子:

diff([1, 2, 3, 5], [1, 2, 3, 4, 5]) 
// [4]

diff([1, "calf", 3, "piglet"], [7, "filly"])
// [1, "calf", 3, "piglet", 7, "filly"]

我的解决方案是构建一个对象,使用数组中的唯一值作为键,并将频率作为该键的值。然后我将值为 1 的键收集到一个新数组中。

问题:我认为键在对象中被视为字符串这一事实使我的解决方案不是很优雅,因为我需要使用 Number() 将“整数”键从字符串转换为数字。

问题:我的代码可以工作,但是有没有人有更好的解决方案来在比较 2 个数组后找到唯一值?

我的代码:

function diff(arr1, arr2) {

var newArr = arr1.concat(arr2);
var dict = {};

for (var i = 0; i < newArr.length; i++) {
if (!dict[newArr[i]]) {
dict[newArr[i]] = 1;
}
else {
dict[newArr[i]]++;
}

}

var unique = [];

for (var key in dict) {
if (dict[key] === 1) {
if (!Number(key)) {
unique.push(key);
}
else {
unique.push(Number(key));
}
}
}
return unique;
}

感谢您的帮助 =)

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