2016-03-30 17 views
-3

の配列に配列して大規模なオブジェクトを変換:JavaScriptを - 私は1つのオブジェクトが含ま配列持つオブジェクト

[ 
    { 
     value 0: "value", 
     value 1: "value", 
     value 2: "value", 
     value 3: "value", 
     value 4: "value", 
     value 5: "value", 
     value 6: "value", 
     value 7: "value", 
     value 8: "value", 
     value 9: "value" 
    } 
] 

理想的には、私はそれがよりこのように見える必要があるが:

[ 
    { 
     value 0: "value" 
    }, 
    { 
     value 1: "value" 
    }, 
    { 
     value 2: "value" 
    }, 
    ... 
] 

の場合可能な限り私はオブジェクトのキーをすべて同じになるように置き換えたいと思います。

JavaScriptでこれを行う方法はありますか?

例をお待ちしております。

お時間をありがとう

+0

与えられた配列と予想される配列。どちらも同じに見えている –

+5

私はそれらがあなたの物件名ではないことを願っています - 彼らは引用符なしで無効です –

+2

はい、道があります。あなたは単一の項目のプロパティをループし、各プロパティのオブジェクトの新しい配列に挿入しようとしましたか? – jmugz3

答えて

1

と提案。必要なものに変更してください。

var out = Object.keys(arr[0]).map(function (el) { 
    return { value: arr[0][el] }; 
}); 

これは、オブジェクトからキーをグラブし、mapを使用して、元のオブジェクトのキー/値ペアの値を使用してオブジェクトを移入新しい配列を返します。

DEMO

0

あなたは(ECMAScriptの2015を使用して)、配列内の最初のオブジェクトのキーをマップすることができます。

var data = [{ 
    'value 0': 'value', 
    'value 1': 'value', 
    'value 2': 'value', 
    'value 3': 'value', 
    'value 4': 'value', 
    'value 5': 'value', 
    'value 6': 'value', 
    'value 7': 'value', 
    'value 8': 'value', 
    'value 9': 'value' 
}]; 

var first = data[0]; 
var result = Object.keys(first).map(key => ({ [key]: first[key] })); 

console.log(result); 
0

これはforEachmapを使用することによって解決することができます

var result = [] 
arrayOfObjects.forEach(function(object) { 
    result = result.concat(Object.keys(object).map(function(key) { 
    return { 
     value: object[key] 
    } 
    })) 
}) 
console.log(result) 

...またはプレーンループ付き:

var result = [] 
for (var i = 0; i < arrayOfObjects.length; i++) { 
    var object = arrayOfObjects[i] 
    for (var key in object) { 
    result.push({ 
     value: object[key] 
    }) 
    } 
} 
console.log(result) 
0

すべてのオブジェクトは、 "値" という名前のキーを持っていES5

function format(object, array) { 
 
    Object.keys(object).forEach(function (k) { 
 
     var o = {}; 
 
     o[k] = object[k]; 
 
     array.push(o); 
 
    }); 
 
} 
 

 
var data = [{ 'value 0': "value", 'value 1': "value", 'value 2': "value", 'value 3': "value", 'value 4': "value", 'value 5': "value", 'value 6': "value", 'value 7': "value", 'value 8': "value", 'value 9': "value" }], 
 
    formated = []; 
 

 
format(data[0], formated) 
 
document.write('<pre>' + JSON.stringify(formated, 0, 4) + '</pre>');

関連する問題