如果有两个array,需要判断两个是否相等
那么必然的他们的大小要一样,
然后,看代码:
/**
* 方式一
**/
function array_equal1(array1, array2) {
if (array1.length == array2.length) {
var _clone = Object.assign([], array1);
array2.forEach(ia => {
var _index = _clone.indexOf(ia);
if (_index >= 0) {
_clone.splice(_index, 1);
}
})
return _clone.length == 0;
}
return false;
}
/**
* 方式二
**/
function array_equal2(array1, array2) {
if (array1.length == array2.length) {
var _hitcount = 0;
array2.forEach(ia => {
var _index = array1.indexOf(ia);
if (_index >= 0) {
_hitcount++;
}
})
return array1.length == _hitcount;
}
return false;
}
入上,方式一,和方式二,经过测试2个都可以,但是我建议大家用方式二,方式一在数据大的时候,或者是浏览器内存吃紧的时候,会有不一样的结果!
有没有熟悉Object.assign的,给解释解释!