有人可以解释如何迭代所有对象的key-val对吗?我是否需要将字符串化对添加到新对象中,然后返回该对象?到目前为止,我已经得到了以下内容,它适用于嵌套对象,但它只返回第一对。
var objectify = function (obj, stringifyJSON) {
for (var key in obj) {
if (obj.hasOwnProperty) {
return (stringifyJSON(key) + ":" + stringifyJSON(obj[key]));
}
实际上,对于像{“a”:1,“b”:2,“c”:3}这样的对象,我只回到{“a”:1}。
我也尝试了以下内容:
var objectify = function (obj, stringify) {
var holder = {};
for (var key in obj) {
if (obj.hasOwnProperty) {
holder[stringifyJSON(key)] = stringifyJSON(obj[key]);
}
}
return ("" + holder + "");
};
只返回{[object Object]}。我已经尝试使用引号分配键和值,而不在键和值上调用stringify,但这些都返回{[object Object]}。
以下是调用objectify的片段:
else if (typeof obj === "object" && obj !== null) {
return ("{" + objectify(obj, stringifyJSON) + "}");
}
答案 0 :(得分:0)
不要在循环中使用return。 可能的解决方案可能是:
var objectify = function (obj, stringifyJSON) {
var tmp = '';
for (var key in obj) {
if (obj.hasOwnProperty) {
tmp = tmp + (stringifyJSON(key) + ":" + stringifyJSON(obj[key]));
tmp =+ '; '; // here you can put any char that you want to separate objects
}
}
return tmp;
}