Javascript для цикла получить ключ и нажать - PullRequest
0 голосов
/ 16 октября 2018

У меня есть код, как показано ниже.В основном, если ключ - любой из них, я помещу это в $ scope.mykey

for (var i = 0; i < response.data.length; i++) { 
   var allKeys = Object.keys(response.data[i])
   for (var k = 0; k < allKeys.length; k++) {
     if (allKeys[k] == "ABC" ||
         allKeys[k] == "EFG" ||
         allKeys[k] == "HIG" ||
         allKeys[k] == "KAY" ||
         allKeys[k] == "LOP" ||
         allKeys[k] == "LLP" ||
         allKeys[k] == "JYP" ||
         allKeys[k] == "TWC" ||
         allKeys[k] == "ZHG" ||
         allKeys[k] == "LMD" ||
         allKeys[k] == "PKL" ||
         allKeys[k] == "JIB" ||
         allKeys[k] == "MHT") {
          $scope.mykey.push({
            name: allKeys[k],
            checked: response.data[i].allKeys[k]
          });
        }
      }

Однако, я получаю ошибку

"Cannot read property '7' of undefined

Я думаю, что это что-то делаетс name: и checked:.Таким образом, например, должно быть что-то вроде этого:

response.data[i].TWC

Но теперь я думаю, что это выглядит так:

 response.data[i].allKeys[7]

Кто-нибудь знает, как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

response.data.map((allKeys)=> {
  let acceptedKeys = ["ABC","EFG","HIG","KAY", "LOP"];
  allKeys.forEach((key, index, allKeys)=>{
    if(acceptedKeys.includes(key)){
      $scope.mykey.push({
        name: key,
        checked: key
      });
    }
  })
})
  
0 голосов
/ 16 октября 2018

Вы получаете эту ошибку, потому что response.data[i] не имеет свойства allKeys.
Если вы хотите получить доступ к свойству с ключом, хранящимся в allKeys[k] в виде строки, используйте:

response.data[i][allKeys[k]]

В качестве идентификатора я бы посоветовал использовать циклы forEach для улучшения читабельности:

 response.data.forEach(function(data) {
     var allKeys = Object.keys(data);
     allKeys.forEach(function(key){
         if (key == "ABC" || key == "EFG" || /*...*/ ) {
             $scope.mykey.push({ name: key, checked: data[key] });
         }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...