オブジェクトのキーから配列を作成しようとしています。私はこの構造のオブジェクトを持っているかもしれません:オブジェクトをトラバースしてキー/値を選択する
$scope.myobj = {
'level1': {
'level1Sub1': {
'result': 'level1-level1Sub1-result'
},
'level1Sub2': {
'result': 'level1-level1Sub2-result'
}
},
'level2': {
'level2Sub1': {
'result': 'level2-level2Sub1-result'
},
'level2Sub2': {
'result': 'level2-level2Sub2-result'
}
}
}
同じレベルの要素は同じ配列になります。 したがって、この場合の結果は次のようになります。オブジェクト全体を横断するjqueryのを使用して
TopLevelArr = [level1, level2]
SecondLevelArr = [level1Sub1, level1Sub2,level2Sub1,level2Sub2]
イム:
var path = "";
$.each($scope.myobj, walker);
function walker(key, value) {
var savepath = path;
path = path ? (path + "." + key) : key;
console.log(path)
if (value !== null && typeof value === "object") {
// Recurse into children
$.each(value, walker);
}
path = savepath;
}
私はにキーを渡す方法を見つけることができればこれはかなり近いはずそのレベルに基づいて適切な配列。
http://jsfiddle.net/bald1/ys05m1s8/2/
ヘルプは大歓迎します。ありがとうございました。
[ 'Object.keys()']に見て(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/キー)... –
Do level ++; $。each();レベル - ;レベルよりも必要な番号を含める必要があります... –
あなたは2つのレベルを常に必要とするのですか? – charlietfl