0

これを変換する方法:

var values = [
    {name:'demian', email: 'demian@gmail.com', ID: 1},
    {name:'john'  , email: 'john@gmail.com'  , ID: 2},
    {name:'mark'  , email: 'mark@gmail.com'  , ID: 3},
    {name:'pete ' , email: 'pete@gmail.com'  , ID: 4}
];

これに:

var values = [
    {'demian', 'demian@gmail.com', 1},
    {'john'  , 'john@gmail.com'  , 2},
    {'mark'  , 'mark@gmail.com'  , 3},
    {'pete ' , 'pete@gmail.com'  , 4}
];
4

3 に答える 3

4

オブジェクトのリストからすべての値を (配列として) 取得する非常に単純なソリューションを次に示します。

var data = [
  {name:'demian', email: 'demian@gmail.com', ID: 1},
  {name:'john'  , email: 'john@gmail.com'  , ID: 2},
  {name:'mark'  , email: 'mark@gmail.com'  , ID: 3},
  {name:'pete ' , email: 'pete@gmail.com'  , ID: 4}
]
var values = data.map( function(d) { return [d.name, d.email, d.ID] })
console.log(values)
// output on console:
// [
//   ["demian", "demian@gmail.com", 1],
//   ["john",   "john@gmail.com",   2],
//   ["mark",   "mark@gmail.com",   3],
//   ["pete ",  "pete@gmail.com",   4]
// ]

これが役立つことを願っています。

編集- より一般的な解決策は次のとおりです。

values = data.map( function(d){ var a=[]; for(k in d) a.push(d[k]); return a })
console.log(values)

ただし、オブジェクトに追加のプロパティがないことを確認する必要があります (たとえば、一部の JS フレームワークによって導入されたものなど)。私は明示的な方法を好みます。

于 2013-03-20T15:04:12.910 に答える
2

一般的な使用法として、名前付きキーがわからない場合、またはすべてのオブジェクトでそれらが同じでない場合は、次のスクリプトを使用できます。

<script type="text/javascript">
var values = [
    {name:'demian', email: 'demian@gmail.com', ID: 1},
    {name:'john'  , email: 'john@gmail.com'  , ID: 2},
    {name:'mark'  , email: 'mark@gmail.com'  , ID: 3},
    {name:'pete ' , email: 'pete@gmail.com'  , ID: 4}
];

var nrv = values.length;
var values2 = [];           // to store the values, without named-keys

for(var i=0; i<nrv; i++) {
  values2[i] = [];
  for each(var val in values[i]) {
    values2[i].push(val);
  }
}

console.log(values2);

/* output on console
[["demian", "demian@gmail.com", 1],
["john", "john@gmail.com", 2],
["mark", "mark@gmail.com", 3],
["pete ", "pete@gmail.com", 4]]
*/
</script>
于 2013-03-20T15:23:37.363 に答える
1

これを試して:

var val_array = [];
for(var i in values)
{
    val_array.push(    
        [values[i].name, values[i].email, values[i].ID]     
    )
}
于 2013-03-20T15:22:03.823 に答える