如何只提取javascript中的对象数组中的值而不提它的关键?

时间:2017-03-24 21:46:59

标签: javascript arrays json

我有一个像这样的对象数组:

T.get('statuses/user_timeline', {screen_name: account, count: 200} , function(err, data){
    if(err){return res.send();};

    var i = 0;
    last_id = data[data.length-1].id_str;
    for(var n in data)
    {
        twits.push({content: data[n].text, date: data[n].created_at});
    }
    if(data.length < 200){
        var twitsToSend = filter(twits);
        return res.send(twitsToSend);       
    }

        var getTwits = setInterval(function()
        {
            T.get('statuses/user_timeline', {screen_name: account, count: 200, max_id: last_id},function(err,data){
                if(err){return res.send();};

                last_id = data[data.length-1].id_str;
                if(data.length < 200){
                    var twitsToSend = filter(twits);
                    return res.send(twitsToSend);

                }
                for(var n in data)
                {
                    twits.push({content: data[n].text, date: data[n].created_at});
                }

            });
                ++i;
                if(i==9)
                    {   
                        clearInterval(getTwits);
                        var twitsToSend = filter(twits);
                        return res.send(twitsToSend);
                    };
        },845);

    });
});

我想要的结果是:

var customerArr = [
                  {
                  name:'Tarmizi',
                  address: 'Bintaro'
                  },
                  {
                  name:'Imam',
                  address: 'Pejaten'
                  },
                  {
                  name:'gugi',
                  address: 'Depok'
                  },
                  {
                  name:'een',
                  address: 'Bintaro'
                  }
            ];

我可以通过以下方式得到上面的结果:

Tarmizi
Imam
gugi
een

但在我的情况下,我通过上传带有标题的excel文件从json数组获取的数组对象具有空格。

所以,我需要获取数组的值而不提及它的关键。

for(customer in customerArr){
    console.log(customerArr[customer].name);    
}

非常感谢

2 个答案:

答案 0 :(得分:0)

您可以通过将其括在方括号中来引用变量中的属性名称:

var propertyName = 'name';  // Property name from header array
var customerArr = [
              {
              name:'Tarmizi',
              address: 'Bintaro'
              },
              {
              name:'Imam',
              address: 'Pejaten'
              },
              {
              name:'gugi',
              address: 'Depok'
              },
              {
              name:'een',
              address: 'Bintaro'
              }
        ];
for(customer in customerArr){
  console.log(customerArr[customer][propertyName]);
}

答案 1 :(得分:0)

您可以使用customerArray[key]提取对象中给定属性的值。由于key将是一个字符串,因此如果内部有空格则无关紧要。

所以,使用你在问题中提供的数组:

var values = new Array;
customerArray.forEach((customer) => {
  if(costumer['name']) values.push(customer['name']);
  return;
}

使用此代码,值将等于您的名称数组。请注意,字符串'name'是从数组示例中提取出来的,但也可以是包含空格的任何字符串。更重要的是,您不必假设您的对象键值对已正确排序。

@squint评论后

更新