var schema = {
title: {
label: 'xxxx', className: 'title'
},
body: [
//Q1
{label: '1. x2', tag: 'radio',
data1 : [
{'value': '1', 'label': 'y'},
{'value': '2', 'label': 'n'},
],
},
]
}
这是代码。我想得到'值得'来自' data1',我该如何实现它。
模式['主体'] [0] [' DATA1'] [1]。价值 这很有效。 THX。
答案 0 :(得分:0)
cami*primercami(cami*primero, int origen){
new cami;
primero->n_aeropuertos=1;
primero->pos_aeropuertos[0]=origen;
primero->coste_acumulado=0;
primero->coste_heuristica=0;
primero->next=NULL;
return primero;
}
cami*AfegirCamiOrdenat (cami* primerolista, cami*nuevoelemento){
cami *ant;
cami *act;
int correcto;
cout<<"Hola estoy ordenando el camino"<<endl;
if (nuevoelemento == NULL)
{
correcto = 0; //retorna falso si el nuevo elemento no se ha creado bien
}
else{ //si la lista esta vacía el nuevo elemento será el primero
if(primerolista==NULL)
{
primerolista = nuevoelemento;
primerolista->next = NULL;
}else //busca la posición donde ha de ir el elemento
{
ant = NULL;
act = primerolista;
while (act->coste_heuristica < nuevoelemento->coste_heuristica && act->next != NULL ) //parar si se llega a la posición donbde insertar o al último elemento
{
ant = act;
act = act->next;
}
if (ant == NULL && act->coste_heuristica >= nuevoelemento->coste_heuristica) //insertar como primer elemento
{
primerolista = nuevoelemento;
nuevoelemento->next=act;
}
else
{
if (act->next == NULL && act->coste_heuristica<nuevoelemento->coste_heuristica) //insertar como último elemento
{
act->next=nuevoelemento;
nuevoelemento->next = NULL;
}
else //insertar al medio de la lista
{
nuevoelemento->next = act;
ant->next=nuevoelemento;
}
}
}
correcto=1;
}
return primerolista;
}
void AEstrella(char lista[24][4], int matPrecio[25][25], int matDist[25][25], int matTiempo[25][25]){
int NumOrigen, NumDestino;
cami*primerelemento;
preguntarVuelo(lista, NumOrigen, NumDestino);
cout<<"El origen es el n "<<NumOrigen<<" y el destino el n "<<NumDestino<<endl;
primerelemento=primercami(primerelemento, NumOrigen);
cout<<"He pasado primercami"<<endl;
while(primerelemento->pos_aeropuertos[primerelemento->n_aeropuertos-1]!=NumDestino){
cami*expansio;
cami*expansio2;
int PosAct=primerelemento->pos_aeropuertos[primerelemento->n_aeropuertos-1];//Determinamos en el APT que nos encontramos
expansio=primerelemento;
expansio2=primerelemento;
expansio->next=NULL;
expansio2->next=NULL;
primerelemento=primerelemento->next;
int Dest1, Dest2;
mostrarDestinos(vectorVuelos,lista,PosAct,Dest1, Dest2);
//Expandimos para el primer destino encontrado
coste_vuelo=matPrecio[PosAct][Dest1];
heuristica=matPrecio[Dest1][NumDestino];
ActualitzarCami(expansio, Dest1, coste_vuelo, heuristica);
cout<<"Coste acumulado: "<<expansio->coste_acumulado<<" Coste heuristica: "<<expansio->coste_heuristica<<endl;
cout<<"N APTS: "<<expansio->n_aeropuertos<<" Ultimo APT: "<<expansio->pos_aeropuertos[expansio->n_aeropuertos-1]<<endl;
primerelemento=AfegirCamiOrdenat(primerelemento, expansio);
cout<<"Hemos pasado por "<<primerelemento->pos_aeropuertos[0]<<" "<<primerelemento->pos_aeropuertos[1]<<endl;
//expandimos para el segundo destino encontrado
coste_vuelo=matPrecio[PosAct][Dest2];
heuristica=matPrecio[Dest2][NumDestino];
ActualitzarCami(expansio2, Dest2, coste_vuelo, heuristica);
primerelemento=AfegirCamiOrdenat(primerelemento, expansio2);
}//while buscando destino
primerelemento=imprimirllistaCami(primerelemento);
esborrarlista(primerelemento);
}
和
schema['body'][0]['data1'][0].value
答案 1 :(得分: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))
&#13;
答案 2 :(得分: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"]
如果你理解,可以获得额外的功劳。
答案 3 :(得分: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/