Получить конкретное значение массива в формате JSON - angular 5 - PullRequest
0 голосов
/ 24 апреля 2018

Я пытаюсь получить конкретное значение ("isRight") в jSON. Опробовал различные решения, представленные в stackoverflow, и сопоставил мой код с одним из них, но получаю значение как неопределенное (без ошибок). JSON:

{

        "QuestionID" : "1",
        "Question"   :"The ozone layer restricts: ",
        "OP"         :["X-rays and gamma rays" , 
                       "Visible light", 
                       "Infrared radiation", 
                       "Ultraviolet radiation" ],
          "isRight"  :"Ultraviolet radiation"

    },


    {


        "QuestionID" : "2",
        "Question"   :"The length of the bridge, which a train 130 metres long and travelling at 45 km/hr can cross in 30 seconds, is:",
        "OP"         :["200 m" , 
                       "225 m", 
                       "245 m", 
                       "250 m" ],
          "isRight"  :"245 m"

    },

.ts:

 filterAnswer(i:number)
      {
      for(i=1 ; i <= this.questArrayNew1.length ; i++)

      {
        console.log(i);
        console.log(this.questArrayNew1);
        this.isRyt  = this.questArrayNew1.find(x=>x.QuestionID == i).isRight;


      }
      }

Я хочу сохранить полученное значение в переменной 'isRyt'.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2018

В соответствии с кодом, указанным вами, «QuestionID» - это строка, а «i» - это число, поэтому оно должно выдавать ошибку типа 'The '==' operator can not be applied to the 'string' and 'number' types'. Я получаю эту ошибку при проверке вашего кода.

Итак, сначала попробуйте сравнить один и тот же тип данных. Возможно, по этой причине ваше сравнение x=>x.QuestionID == i терпит неудачу, а значение не определено.

Поставьте "QuestionID" : 1 вместо "QuestionID" : "1"

После исправления вы получите значение isRyt следующим образом: enter image description here

Я думаю, вы ожидаете этого результата.

0 голосов
/ 24 апреля 2018
{
         this.isRyt  = this.questArrayNew1.find(x=>{
              if(x.QuestionID === i){ return x.isRight }
})}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...