Вопрос:

цикл по массиву с объектами

javascript jquery

53 просмотра

2 ответа

18 Репутация автора

Я пытаюсь зациклить массив, который имеет различные объекты, это мой код - какие-нибудь советы?

 var companies = [
                 {name: 'dhillion', imgCount: 1},
                 {name: 'blinds', imgCount: 2},
                 {name: 'honda', imgCount: 2},
                 {name: 'nike', imgCount: 3},
                 {name: 'protilla', imgCount: 3},
                 {name: 'starbucks', imgCount: 4}
                ];

// for(var i =0; i < companies.length; i++){
//     console.log(companies.name + '..' + companies.imgCount);
// }

for(var k in companies){
    console.log(companies.name[k] + '..' + companies.imgCount[k]);
}
Автор: Harp Источник Размещён: 08.11.2017 11:21

Ответы (2)


-1 плюса

59 Репутация автора

Вы были близки, вам не хватало ссылки на позицию в массиве.

     var companies = [
                 {name: 'dhillion', imgCount: 1},
                 {name: 'blinds', imgCount: 2},
                 {name: 'honda', imgCount: 2},
                 {name: 'nike', imgCount: 3},
                 {name: 'protilla', imgCount: 3},
                 {name: 'starbucks', imgCount: 4}
                ];

for(var i =0; i < companies.length; i++){
    console.log(companies[i].name + '..' + companies[i].imgCount);
}

https://jsfiddle.net/brm0kx2d/

Рабочий пример выше

Автор: MikeyT Размещён: 08.11.2017 11:25

-1 плюса

20363 Репутация автора

Решение

Лично я бы использовал для каждой логики и позволить javascript обрабатывать индексы для вас.

var companies = [{
    name: 'dhillion',
    imgCount: 1
  },
  {
    name: 'blinds',
    imgCount: 2
  },
  {
    name: 'honda',
    imgCount: 2
  },
  {
    name: 'nike',
    imgCount: 3
  },
  {
    name: 'protilla',
    imgCount: 3
  },
  {
    name: 'starbucks',
    imgCount: 4
  }
];

if (Array.prototype.forEach) {
  //native logic if the browser supports it
  companies.forEach(function(company){
    console.log(company.name);
  });
} else {
  //jQuery logic fallback if it does not, or you could just do this and not worry about testing for the fallback
  $.each(companies, function(index, company){
    console.log(company.name);
  });
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Автор: Taplar Размещён: 08.11.2017 11:28
Вопросы из категории :
32x32