2017-04-17 94 views
-1
var schema = { 
    title: { 
     label: 'xxxx', className: 'title' 
    },  
    body: [ 
     //Q1 
     {label: '1. x2', tag: 'radio', 
     data1 : [ 
      {'value': '1', 'label': 'y'}, 
      {'value': '2', 'label': 'n'}, 
     ], 
    }, 
    ] 
} 

这是代码。我想从'data1'中获得'价值',我该如何实现它。如何从一个对象内的数组中获得值

schema ['body'] [0] ['data1'] [1] .value This works。谢谢。

+1

你尝试过这么远吗? – guradio

+0

尝试'schema.body [0] .data1 [0] .value' – gurvinder372

+0

显示您尝试过的努力吗? –

回答

0

schema['body'][0]['data1'][0].value

schema['body'][0]['data1'][1].value 
0

只需使用这样schema.body[0].data1.map(a => a.value)。他们Array#map是迭代data1阵列的所有值

var schema = { 
 
    title: { 
 
    label: 'xxxx', 
 
    className: 'title' 
 
    }, 
 
    body: [ 
 
    //Q1 
 
    { 
 
     label: '1. x2', 
 
     tag: 'radio', 
 
     data1: [{ 
 
      'value': '1', 
 
      'label': 'y' 
 
     }, 
 
     { 
 
      'value': '2', 
 
      'label': 'n' 
 
     }, 
 
     ], 
 
    }, 
 
    ] 
 
} 
 

 
console.log(schema.body[0].data1.map(a => a.value))

0

我不会给你答案你家庭作业,但这是一个过度复杂的方式:

function getValue(obj, props){ 
    if(!props.length) return [obj]; 
    if(typeof obj !== "object") return []; 
    if(!obj) return []; 

    var values = []; 
    for(var key in obj){ 
     var prop = props.slice(); 
     if(key === props[0]){ 
      prop.shift(); 
     } 
     values = values.concat(getValue(obj[key], prop)); 
    } 
    return values; 
} 

getValue(schema, ["data1", "value"]); // ["1", "2"] 

如果您了解它,请额外付款。

0

尝试以下步骤应该是有帮助的

1. First you need to change object into string 
2. Use JSON.parse to get json object 
3. From json object you can access any items like below sample 

示例代码:

var text = '{"title":{"label":"xxxx","className":"title"},"body":[{"label":"1. x2","tag":"radio","data1":[{"value":"1","label":"y"},{"value":"2","label":"n"}]}]}'; 

obj = JSON.parse(text); 
console.log(obj.body[0].data1[0].label); 

这里是工作示例代码:http://jsfiddle.net/NJMyD/5389/