访问对象数组中的深层嵌套字段

时间:2017-04-06 10:27:42

标签: javascript arrays nested javascript-objects

我有以下代码:

var ops = [{
    label: 'Primary Colors',
    options: [{
        label: 'Yellow',
        value: 'yellow'
    }, {
        label: 'Red',
        value: 'red'
    }, {
        label: 'Blue',
        value: 'blue'
    }],
    label: 'Secondary Colors',
    options: [{
        label: 'Pink',
        value: 'yellow'
    }, {
        label: 'Pink',
        value: 'Pink'
    }, {
        label: 'Violet',
        value: 'violet'
    }]
}

我想创建一个变量,其中包含options数组中值字段的所有值,如下所示:value = [yellow, red, blue, yellow, pink, violet]。有任何想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用Javascript foreach 方法

执行此操作

var ops=[{label: 'Primary Colors',
options: [{label: 'Yellow',value: 'yellow'},
{label: 'Red',value: 'red'},
{label: 'Blue',value: 'blue'}]},
{label: 'Secondary Colors',
options: [{label: 'Pink',value: 'yellow'},{label: 'Pink',value: 'Pink'},{label: 'Violet',value: 'violet'}]}];      

var arr =[];var obj = [];
arr = ops.forEach(function(o){
  var a = o.options;
  a.forEach(function(option) {
    
    obj.push(option.value);
	});
});
console.log(obj);

Fiddle Working Demo

注意:您提供的修改数据,因为某些结束标记(}])的顺序不正确。