Порой, глядя на предыдущие ответы, я просто не понимаю - что творится в головах этих людей? Неужели все JS разработчики настолько забивают на производительность своих поделок?
function runTests() {
const testCount = 1000;
const testArrays = [];
for (let i = 0; i < testCount; i++) {
const arrayLength = Math.round(Math.random() * 100);
const array = [];
for (let i = 0; i < arrayLength; i++) {
array.push(Math.random() * 10);
}
testArrays.push(array);
}
console.time('stringifyCompare');
for (let i = 0; i < testCount - 1; i++) {
compareStringify(testArrays[i], testArrays[i + 1]);
}
console.timeEnd('stringifyCompare');
console.time('normalCompare');
for (let i = 0; i < testCount - 1; i++) {
compareTheRightWay(testArrays[i], testArrays[i + 1]);
}
console.timeEnd('normalCompare');
}
function compareStringify(first, second) {
return JSON.stringify(first) == JSON.stringify(second);
}
function compareTheRightWay(first, second) {
if (first.length != second.length) {
return false;
}
for (let i = 0; i < first.length; i++) {
if (first[i] != second[i]) {
return false;
}
}
return true;
}
runTests();
Результаты:
stringifyCompare: 21.304ms
normalCompare: 0.148ms