要识别一组数组输入中的输入值是否发生了更改,可以通过以下几种方法来实现:
以下是使用JavaScript实现上述三种方法的示例代码:
function arrayHash(arr) {
return arr.reduce((acc, val) => acc + JSON.stringify(val), '');
}
let originalArray = [1, 2, 3];
let currentHash = arrayHash(originalArray);
// 检查变化
function hasChanged(newArray) {
return arrayHash(newArray) !== currentHash;
}
console.log(hasChanged([1, 2, 3])); // false
console.log(hasChanged([1, 2, 4])); // true
function deepEqual(a, b) {
if (a === b) return true;
if (typeof a !== 'object' || typeof b !== 'object' || a === null || b === null) return false;
let keysA = Object.keys(a), keysB = Object.keys(b);
if (keysA.length !== keysB.length) return false;
for (let key of keysA) {
if (!keysB.includes(key) || !deepEqual(a[key], b[key])) return false;
}
return true;
}
let originalArray = [1, {a: 2}, 3];
let currentArray = [...originalArray];
// 检查变化
function hasChanged(newArray) {
return !deepEqual(newArray, currentArray);
}
console.log(hasChanged([1, {a: 2}, 3])); // false
console.log(hasChanged([1, {a: 3}, 3])); // true
let originalArray = [1, 2, 3];
let currentRef = originalArray;
// 检查变化
function hasChanged(newArray) {
return newArray !== currentRef;
}
console.log(hasChanged([1, 2, 3])); // false
console.log(hasChanged([1, 2, 4])); // true
选择哪种方法取决于具体需求和场景。通常情况下,哈希方法因其效率和实用性而被广泛采用。