Javascript比较多个数组以获得所有数组的唯一值
Javascript comparing multiple arrays to get unique value across all
我有以下数组:
var array = [
[1, 2, 3, 4, 5],
[2, 3],
[3, 4],
[3]
];
我试图从所有数组中出现的数组中得到一组唯一的数字。
因此,在这种情况下,返回
[3]
有什么建议吗?
非常感谢:)
将array[0]
的值存储在一个变量中(我们称之为result
)。
从array[1]
循环到结束。在这个循环中,运行result
的所有值。如果result
的当前值不在array[x]
中,则从result
中移除该值。
在循环结束时,result
只包含所需的值。
除了明显的"迭代每个数组并在其他每个数组中找到匹配的数字"之外,您还可以对原始数组进行扁平化(concat)、排序,然后查找出现在四个连续索引处的数字。我不喜欢OP没有表现出任何努力的问题,但这很有趣,所以来了
array.reduce(function(prev, cur){
return prev.concat(cur);
})
.sort()
.filter(function(item, i, arr){
return arr[ i + array.length - 1 ] === item;
});
或ES2015:
array.reduce((prev, cur)=>prev.concat(cur))
.sort()
.filter((i, idx, arr)=>(arr[idx+array.length-1]===i));
在学习后,我使用了错误的javascript方法从数组中删除(pop),并进行了一些修补。我成功了,非常感谢那些回应的人。
var array = [
[2, 3, 5, 1],
[3, 4, 2, 1],
[3, 2],
[3, 4, 2, 5]
];
var result = array[0]
for (var i = 1; i < array.length; i++) {
for (var j = 0; j < result.length; j++) {
var arrayQuery = $.inArray(result[j], array[i]);
if(arrayQuery == -1){
result.splice(j, 1)
}
};
};
试试这个:
var array = [
[1, 2, 3, 4, 5],
[2, 3],
[3, 4],
[3]
];
var arr = [];
for(var x in array){
for(var y in array[x]){
if(arr.indexOf(array[x][y]) === -1){
arr.push(array[x][y]);
}
}
}
console.log(arr);
输出:
[1, 2, 3, 4, 5]
工作演示
相关文章:
- 如何从数组中查找唯一对象
- JavaScript:从对象数组中获取唯一值及其计数
- 创建具有2个唯一数字的Javascript数组
- javascript和具有唯一密钥的es6过滤器数组
- 根据对多个数组唯一的元素创建一个新数组
- 将数组中的重复项转换为唯一项,而不删除Javascript中的任何项
- 映射对象数组,并且仅采用唯一
- Ember JS如何获取具有唯一属性值的数组
- 如何使 JSON 数组唯一
- Javascript:编写一个函数,接收一个数组,然后返回一个只有唯一数字的数组,只删除数组
- 从数组列表中返回唯一的数组
- 推送时请确保数组中的值是唯一的
- 对具有唯一值的对象键的数组进行排序
- 如何从字符串数组中获得8个随机唯一元素
- 基于单个属性从数组中获取唯一对象
- javascript唯一值数组中的唯一随机值
- 将唯一对象推送到JavaScript数组
- 从数组中获取最高但也是唯一的数字
- 从字符串数组创建唯一组合数组
- ReactJS中使用非子组件的子数组唯一键