gpt4 book ai didi

javascript - 为什么它们不一样?

转载 作者:行者123 更新时间:2023-12-02 14:30:35 25 4
gpt4 key购买 nike

此声明:

[].slice.call(document.getElementsByTagName("div")).forEach(function (item,index){console.log (item===[].slice.call(document.querySelectorAll("div"))[index])});

给出所有真实结果。但是:

[].slice.call(document.getElementsByTagName("div"))===[].slice.call(document.querySelectorAll("div"));

给出错误的结果。为什么?

最佳答案

在第二种情况下,您尝试比较两个数组,而在第一种情况下,您正在比较单个元素。这就是结果不同的原因。

比较数组的各个元素和比较两个数组不相等。例如,这个 javascript 函数检查数组相等性

 function arraysEqual(a, b) {
if (a === b) return true;
if (a == null || b == null) return false;
if (a.length != b.length) return false;

// If you don't care about the order of the elements inside
// the array, you should sort both arrays here.

for (var i = 0; i < a.length; ++i) {
if (a[i] !== b[i]) return false;
}
return true;
}

现在当您使用

调用此函数时
arraysEqual([].slice.call(document.getElementsByTagName("div")), [].slice.call(document.querySelectorAll("div")))

结果为 true。

关于javascript - 为什么它们不一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37872719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com