请参考小提琴js文件对象obj1。(我从这种格式的对象开始,因为它表示当PHP回显一个有序的键值PHP数组时,我从Ajax获得的内容)。
var obj1 = {
"key1": "val1",
"key2": "val2",
"key3": "val3"
};
box1.innerText = "Object: " + JSON.stringify(obj1);
var arr1 = [];
for( keystr in obj1 ) {
box2.innerText = keystr;
valstr = obj1[keystr];
arr1.push({keystr : valstr});
}
box3.innerText = "Array: " + JSON.stringify(arr1);
对于那些问我为什么要这样做的人:因为我想看看是否可以保留顺序(我听说js对象没有顺序?),并且因为它恰好是函数参数所需的格式,所以我我将把数据传递给下一个。
如您所见,正在使用标识符(即“ keystr”)代替密钥本身(即“ key1”,“ key2”,“ key3”),而不是字符串本身。
这里推荐什么方法?谢谢!
是的,以这种方式定义对象文字时,将按原样使用指定的键。您可以使用使用标识符值的方括号表示法。
var obj = {};
obj[keystr] = obj1[keystr];
arr1.push(obj);
请注意,已知有些浏览器(例如Chrome)可以通过键对对象的属性进行排序,但这是特定于实现的功能,您不应依赖它。JavaScript对象属性的顺序是undefined。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句