如何转换此内容:
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}
];
答案 0 :(得分: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框架引入)。我更喜欢明确的方式。
答案 1 :(得分: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>
答案 2 :(得分:1)
试试这个:
var val_array = [];
for(var i in values)
{
val_array.push(
[values[i].name, values[i].email, values[i].ID]
)
}