有人可以解释如何迭代所有对象的键值对吗?我是否需要将字符串化的对添加到新对象中,然后返回该对象?到目前为止,我已经得到了以下内容,它适用于嵌套对象,但它只会返回第一对。在第一个键后,循环通过一个对象的For循环停止
var objectify = function (obj, stringifyJSON) {
for (var key in obj) {
if (obj.hasOwnProperty) {
return (stringifyJSON(key) + ":" + stringifyJSON(obj[key]));
}
因为它是,对于像对象{ “一”:1, “B”:2, “C”:3},我发现了背面只是{ “一”:1}。
我也试过如下:
var objectify = function (obj, stringify) {
var holder = {};
for (var key in obj) {
if (obj.hasOwnProperty) {
holder[stringifyJSON(key)] = stringifyJSON(obj[key]);
}
}
return ("" + holder + "");
};
刚刚返回{[对象的对象]}。我试着用引号分配键和值,并且没有对键和值调用stringify,但是这些都返回{[object Object]}。
下面是调用对象化的片段:
else if (typeof obj === "object" && obj !== null) {
return ("{" + objectify(obj, stringifyJSON) + "}");
}
您实际想达到的最终结果是什么? –
我试图让它返回一个包含对象的字符串,其中的每一对也都被字符串化了。 l2mt的答案(指出我需要持有人var是一个字符串,而不是一个对象)基本上是我所期待的。 – TuringTested
@ Steve:“包含对象的字符串”非常含糊。我很高兴l2mt能够帮助!下一次的链接,让你更快得到更好的答案:http://stackoverflow.com/help/how-to-ask \ * http://meta.stackexchange.com/questions/156810/stack-overflow-question-清单 –