我有一个对象:
var obj =
[
{
"value": "aep",
"label": "AEP"
},
{
"value": "cap",
"label": "CAP"
},
{
"value": "casl",
"label": "CASL"
} ]
我想将标签的值仅转换为数组,以便最终结果为:
["AEP", "CAP", "CASL"]
如何只获取在数组中转换的标签值?
答案 0 :(得分:1)
首先:obj
不是一个对象,它是一个数组,因为父括号是[]
而不是{}
。但是,我会保持名称相同。这可能会引起一些混乱,例如
var object = {};
var array = [];
var arrayOfObjects = [{},{},{}];
var objectOfArrays = {array1: [],array2: [],array3: []};
要循环数组,可以使用for循环:
// 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);
答案 1 :(得分:0)
这是一个功能性解决方案,而不是最直接的,您可能需要参考@ theblindprophet的答案来解决此问题的必要方法。
以功能性方式完成非常简单的任务:
var labels = obj.map(function(inner) { return inner.label });
如何处理这样的问题:您需要考虑如何将您拥有的数据转换为您想要的数据。在这种情况下,您有一个对象数组,并且您希望将此对象数组转换为放置在该对象内的字符串数组。
上面的代码遍历数组并返回数组当前元素所需的值,在课程中构建一个新数组(map
)
答案 2 :(得分:0)
使用for循环
var out = [];
for (var i = 0, len = obj.length; i < len; i++) {
out.push(obj[i].label);
}
console.log(out);
答案 3 :(得分:0)
简单。你可以使用javascript数组的map函数
var obj =
[
{
"value": "aep",
"label": "AEP"
},
{
"value": "cap",
"label": "CAP"
},
{
"value": "casl",
"label": "CASL"
} ]
var arr = obj.map(function(data){return data.value});