Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环通过api数据数组从对象获取值_Javascript - Fatal编程技术网

Javascript 循环通过api数据数组从对象获取值

Javascript 循环通过api数据数组从对象获取值,javascript,Javascript,我有这样的数据: var data = [{one:1}, {two:2}, {three:3}] 我想循环遍历这些数据,并得到键的值。我要找的结果是123 我试过: var result = []; for(i=0; i < data.length; i++){ result.push(data[i]); } var结果=[]; 对于(i=0;iobject[object.keys(object)[0]]); 控制台日志(结果); console.log(result.joi

我有这样的数据:

var data = [{one:1}, {two:2}, {three:3}]
我想循环遍历这些数据,并得到键的值。我要找的结果是123

我试过:

var result = [];
for(i=0; i < data.length; i++){
    result.push(data[i]);
}
var结果=[];
对于(i=0;i
然而,它所做的只是将对象推入变量数组“result”


所以问题是,我如何获得数据的值,即1、2和3?

从如下对象获得值:

var result = [];
data.foreach((item) => {
    item.keys().foreach( (key) => {
        result.push(item[key]);
    });
});
当数据已经在数组中时,您只需执行以下操作

var dataString = result.join('');
此函数获取数组中的所有值,并将其连接成一个字符串,以给定字符串作为分隔符。传入空白字符串使其不使用分隔符

或者,您可以执行以下操作:

var result = "";
data.foreach((item) => {
    item.keys().foreach( (key) => {
        result += item[key];
    });
});
因为这将直接连接字符串。

这样就可以了

var data = [{one:1}, {two:2}, {three:3}]
var result = [];

// read all items of data.
data.forEach(function(item) {

     // read all keys of item.
    Object.keys(item).forEach(function(key) {
        result.push(item[key]);
    });

});
还是ES6

  const data = [{one:1}, {two:2}, {three:3}]
  let result = [];

  data.forEach(item => {
     result = [...result, ...Object.values(item)];
  });

如果您的数据结构没有改变,这意味着,您在每个对象条目中正好有一个键值对,使用迭代这些条目,然后使用当前的
对象
调用,并使用
[0]
获取实际的密钥(例如
一个
两个
三个
)然后使用键返回
对象的值
,然后您可以按照需要的方式操作
结果

ES6示例:
const data=[{1:1},{2:2},{3:3}];
const result=data.map(object=>object[object.keys(object)[0]]);
控制台日志(结果);
console.log(result.join(',');

console.log(result.join(“”))
使用
reduce
Object.values
spread
怎么样

const data = [{one:1}, {two:2}, {three:3}]

const flatMapValues = arr => {
  return arr.reduce((collection, item)=> collection = [...collection, ...Object.values(item)], [])
}
这样可以更好地扩展,因为它可以将所有值转换为一个数组

const data = [{one:1, four: 4}, {two:2, five:5}, {three:3, six: 6}]

const flatMapValues = arr => {
  return arr
    .reduce((collection, item)=> collection = [...collection, ...Object.values(item)], [])
    .sort((a, b) => a > b)
}

在某些浏览器(和NodeJS7)中,您可以这样使用

var data=[{1:1},{2:2},{3:3}];
var values=data.map(o=>Object.values(o)[0]);
console.log(值)