我正在尝试将值存储在javascript对象表示法中。我已经完成了一些编程,并将所有发生的内容存储到用逗号分隔的字符串中,如果我试图找到的术语是一个数组,我得到[object object]作为回报,因为它是一个数组。我想知道如何将该数组中的所有项目存储到以逗号分隔的变量中,例如,如果我选择“时间”,那么它应该返回Dec 9, 1, 2012
Ive到达的部分返回值,如果它是非数组http://jsbin.com/obehog/3/edit
并且阵列的深度可能会发生变化,在每种情况下它都不会相同。所以通过循环将无法正常工作..
答案 0 :(得分:1)
如果选择“时间”,则结果为数组,如:
[[{
"term": "Dec 9",
"Dec_9": [{
"count": 1,
"term": "2012"
}]
}]]
如果你想要像Dec 9, 1, 2012
那样的结果,你需要一个方法来将一个对象解析为字符串(或字符串数组),代码如下:
function valuesOfObj(obj, result) {
result = result || [];
if (typeof obj === 'object') {
for (var k in obj) {
if (obj.hasOwnProperty(k)) {
arguments.callee(obj[k], result);
}
}
} else {
result.push(obj);
}
return result;
}
console.log(valuesOfObj([{
"term": "Dec 9",
"Dec_9": [{
"count": 1,
"term": "2012"
}]
}]).join(', ')); // -> Dec 9, 1, 2012
顺便说一下,你做的很棒,还有其他一些类似jsonselect和JSONQuery的实现,希望对你有用。