Получить значение элемента из массива в массив массива - PullRequest
0 голосов
/ 01 мая 2020

Я искал, но не мог найти ответ на этот вопрос; Я предполагаю, что это довольно легко, но я не могу понять это правильно. Попытка получить значение amount здесь:

let fruit = [
{"prices":{"price":{"amount":4.97,"unit":"ea","quantity":1},"wasPrice":null}
]

У меня есть l oop, и я попробовал что-то подобное; но не сработало:

keyPrice = Object.keys(fruit[i].prices.price); 
console.log(keyPrice['amount'])
//this is giving me undefined result

Ответы [ 3 ]

2 голосов
/ 01 мая 2020

Фрагмент кода синтаксически искажен (3 открывающих, 2 закрывающих скобки).

Если это просто опечатка, Object.keys(...) создает массив свойств names . Для него будет установлено значение ['amount', 'unit', 'quantity'].

. Кроме того, i должно быть инициализировано 0.

. Что вы намереваетесь:

let i=0;
let keyPrice = fruit[i].prices.price; // Rename the variable!
console.log(keyPrice['amount']);
1 голос
/ 01 мая 2020

кажется, что вы пропустили одну фигурную скобку} после нуля

let fruit = [
        {"prices":
            {"price":
                {"amount":4.97,"unit":"ea","quantity":1}
            ,"wasPrice":null}
            }
        ]

и это для значения суммы

 fruit[0].prices.price.amount; 
0 голосов
/ 01 мая 2020

Вам нужна функция dig:

function dig(obj, func){
  let v;
  if(obj instanceof Array){
    for(let i=0,l=obj.length; i<l; i++){
      v = obj[i];
      if(typeof v === 'object'){
        dig(v, func);
      }
      else{
        func(v, i, obj);
      }
    }
  }
  else{
    for(let i in obj){
      v = obj[i];
      if(typeof v === 'object'){
        dig(v, func);
      }
      else{
        func(v, i, obj);
      }
    }
  }
}
let fruit = [
  {
    prices:{
      price:{
        amount:4.97,
        unit:'ea',
        quantity:1
      },
      wasPrice:null
    }
  }
];
dig(fruit, (v, i, obj)=>{
  if(i === 'amount')console.log(v);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...