当我在Javascript中循环一个对象来提取它的键时,为什么键在它们是整数时转换为字符串?
obj = {1:'a', 2:'b'};
arr = [];
for(var key in obj){
if (obj.hasOwnProperty(key)){
arr.push(key);
}
}
Run Code Online (Sandbox Code Playgroud)
现在arr是[ "1", "2" ]代替[1, 2]
mea*_*gar 18
它不是转换键的循环; 事实上,键只能是字符串.您不能拥有任何其他类型的密钥.如果您的密钥不是字符串,则当您将其用作属性名称时,JavaScript会将其转换为字符串.
考虑:
key = {
toString: function () { return "Blah" }
};
myObject = {}
myObject[key] = "value";
// writes "Blah"
document.write(Object.keys(myObject));Run Code Online (Sandbox Code Playgroud)
请注意,如果您未提供a toString,则键将是字符串"[object Object]".
| 归档时间: |
|
| 查看次数: |
6974 次 |
| 最近记录: |