首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS:将一个特定值从一个对象转换成一个数组?

JS:将一个特定值从一个对象转换成一个数组?
EN

Stack Overflow用户
提问于 2016-07-15 06:08:41
回答 4查看 102关注 0票数 0

我有一个对象:

代码语言:javascript
复制
var obj = 
[
 {
   "value": "aep",
   "label": "AEP"
 },
 {
   "value": "cap",
   "label": "CAP"
 },
 {
   "value": "casl",
   "label": "CASL"
 } ] 

我只想将标签的值转换为数组,这样最终结果就是:

代码语言:javascript
复制
["AEP", "CAP", "CASL"]

如何只转换数组中的标签值?

EN

回答 4

Stack Overflow用户

发布于 2016-07-15 06:15:46

首先:obj不是一个对象,它是一个数组,因为父方括号是[]而不是{}。但是,我将保持名称不变。这可能会引起你的一些困惑。

代码语言:javascript
复制
var object = {};
var array = [];
var arrayOfObjects = [{},{},{}];
var objectOfArrays = {array1: [],array2: [],array3: []};

要循环数组,可以使用for循环:

代码语言:javascript
复制
// new array
var newArray = [];
// iterates over each index in the array
for(var i=0; i<obj.length; i++) {
    // Access the specific index, then access its `label` property
    // Push into `newArray`
    newArray.push(obj[i].label);
}

console.log(newArray);

Codepen:http://codepen.io/theblindprophet/pen/RRxVba

票数 1
EN

Stack Overflow用户

发布于 2016-07-15 06:10:25

这是一个函数式的解决方案,而不是最直接的,你可能想参考@theblindprophet的答案来了解这个问题的命令式方法。

以函数式方式完成相当简单的任务:

代码语言:javascript
复制
var labels = obj.map(function(inner) { return inner.label });

如何处理这样的问题:您需要考虑如何将您拥有的数据转换为您想要的数据。在本例中,您有一个对象数组,并且希望将此对象数组转换为放置在该对象内的字符串数组。

上面的代码迭代数组并返回数组的当前元素所需的值,从而在课程中构建一个新的数组(map)

票数 0
EN

Stack Overflow用户

发布于 2016-07-15 06:16:39

使用for循环

代码语言:javascript
复制
 var out = [];
 for (var i = 0, len = obj.length; i < len; i++) {
     out.push(obj[i].label);
 }
 console.log(out);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38385022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档