在JavaScript中比较对象的最佳方法是什么?
例:
var user1 = {name : "nerd", org: "dev"};
var user2 = {name : "nerd", org: "dev"};
var eq = user1 == user2;
alert(eq); // gives false
Run Code Online (Sandbox Code Playgroud)
我知道如果它们引用完全相同的对象,则两个对象是相等的,但有没有办法检查它们是否具有相同的属性值?
以下方式对我有用,但这是唯一的可能性吗?
var eq = Object.toJSON(user1) == Object.toJSON(user2);
alert(eq); // gives true
Run Code Online (Sandbox Code Playgroud) 你认为for in和for循环有很大的不同吗?您更喜欢使用什么样的"for"?为什么?
假设我们有一组关联数组:
var myArray = [{'key': 'value'}, {'key': 'value1'}];
Run Code Online (Sandbox Code Playgroud)
所以我们可以迭代:
for (var i = 0; i < myArray.length; i++)
Run Code Online (Sandbox Code Playgroud)
和:
for (var i in myArray)
Run Code Online (Sandbox Code Playgroud)
我没有看到很大的不同.有任何性能问题吗?
我在Javascript中遇到了一个奇怪的行为.我明白了
"对象不支持此属性或方法"
removeAttribute以下代码中的函数异常:
var buttons = controlDiv.getElementsByTagName("button");
for ( var button in buttons )
button.removeAttribute('disabled');
Run Code Online (Sandbox Code Playgroud)
当我用以下代码更改代码时,问题消失了:
var buttons = controlDiv.getElementsByTagName("button");
for ( var i = 0; i < buttons.length; i++ )
buttons[i].removeAttribute('disabled');
Run Code Online (Sandbox Code Playgroud)
button里面有for...in什么价值?
可能重复:
for(var in aArray)VS for(i = 0; i <aArray.length; i ++)
假设这些总是会做同样的事情,并且我应该总是使用后者,这是安全的吗?
for (var i = 0; i < a.length; i++){
for (var i in a){