你如何解析一个数组删除键,只返回值与javascript

How do you parse an Array to remove keys, return only values with javascript

本文关键字:删除 返回值 javascript 数组 一个 何解析      更新时间:2023-09-26

如何转换:

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}
];

这是一个非常简单的解决方案,从对象列表中获取所有值(作为数组):

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框架引入的)。

对于一般用法,当您不知道命名键,或者它们在所有对象中不相同时,您可以使用以下脚本:

<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>

试试这个:

var val_array = [];
for(var i in values)
{
    val_array.push(    
        [values[i].name, values[i].email, values[i].ID]     
    )
}