如果我将附加属性附加到对象,它是否必须放在末尾,或者我可以将其放在指定位置吗?
function reassign(obj){
delete obj.c;
obj.c = "new three";
var t = "<table border=\"1\">";
for (var i in obj){
t += "<tr><td>" + obj[i] + "</td></tr>";
}
t += "</table>";
return t;
}
var obj = {
a : "one",
b : "two",
c : "three",
d : "four"
};
var reassigned = reassign(obj);
document.write(reassigned);
Run Code Online (Sandbox Code Playgroud)
是否有可能obj.c在删除后将新的内容再次放在第三个位置,而不是将其附加到末尾?当然我可以跳过删除部分。但即使没有那个,我也可以例如打算注入alphabeta: "one point five"第二个位置。是否可以?谢谢!
数组元素是有序的;对象属性不是。您永远不应该假设对象属性将以特定顺序迭代。
如果顺序对您很重要,请创建一个order:[]包含属性名称数组的新属性,然后您可以对其进行迭代:
var obj = {
a : "one",
b : "two",
c : "three",
d : "four",
order : ['a','b','c','d']
};
Run Code Online (Sandbox Code Playgroud)