a[1,2,3,5,6]和b[1,2,4,6]怎样得出a的多的和a的少的
通过您的问题分析,求数组a的多出的部分和a少出的部分,其实可以理解为求两数组的差集,可以用两种方法实现:
Array.prototype.minus = function (arr) {
var result = new Array();
var obj = {};
for (var i = 0; i < arr.length; i++) {
obj[arr[i]] = 1;
}
for (var j = 0; j < this.length; j++) {
if (!obj[this[j]])
{
obj[this[j]] = 1;
result.push(this[j]);
}
}
return result;
};
let a = [1, 2, 3, 5, 6];
let b = [1, 2, 4, 6];
// 获取数组a多出的部分
console.log(a.minus(b));
// 获取数组a少出的部分
console.log(b.minus(a));
如果您的项目中有使用es6语法,那就用楼上es6语法:
let a = [1, 2, 3, 5, 6];
let b = [1, 2, 4, 6];
// 获取数组a多出的部分
a.filter(item => !b.includes(item))
// 获取数组a少出的部分
b.filter(item => !a.includes(item))
希望对您有所帮助。
php就用array_diff就可以
a少的:
array_diff($b, $a);
反过来,就是a多的:
array_diff($a, $b);
返回一个数组.
算法时间复杂度为O(n)
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
求a有b没有:
求b有a没有: