0

JavaScript オブジェクト表記内に値を格納しようとしています。私は少しプログラミングを行い、すべての出現をコンマで区切られた文字列に保存する必要がありました.Bt、検索しようとしている用語が配列である場合、配列であるため[オブジェクトオブジェクト]を返します. その配列内のすべての項目をカンマで区切られた変数に格納する方法を知りたいのですが、たとえば、「時間」を選択すると、返されるはずですDec 9, 1, 2012

私が到達した部分は、配列でない場合は値を返しますhttp://jsbin.com/obehog/3/edit

配列の深さは変わる可能性があり、それぞれの場合で同じではありません。そのため、ループを通過しても機能しません..

4

1 に答える 1

1

if you select "Time", the result is an array, like:

[[{
    "term": "Dec 9",
    "Dec_9": [{
        "count": 1,
        "term": "2012"
    }]
}]]

if you want a result like Dec 9, 1, 2012, you need a method to parse an object to string (or string array), code like:

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

the full demo

By the way, what you done is excellent, there are some other achieve like jsonselect and JSONQuery, Hope useful for you.

于 2012-07-10T08:13:54.843 に答える