将键、值对象转换为 Javascript 中的键、值数组
Converting key,value object to key,value array in Javascript
请参考fiddlejs文件对象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 对象属性的顺序是 未定义 。
请参考fiddlejs文件对象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 对象属性的顺序是 未定义 。