Могу ли я использовать для цикла?или функция для этого и сделать кратчайшим и динамическим для этого массива - PullRequest
0 голосов
/ 12 сентября 2018

Я новичок и хочу учиться здесь, поэтому я хочу получить некоторую информацию и учиться у всех вас. Можем ли мы использовать ForEach для этого или оператора if ??

    var people = [
      [1, 'Dimitri', 'Microsoft'],
      [2, 'Mike', 'Microsoft'],
      [3, 'John', 'Microsoft']
    ];
    
    
    var people2 = `ID : ${people[0][0]}`;
    var people3 = `NAME : ${people[0][1]}`;
    var people4 = `COMPANY : ${people[0][2]}`;
    console.log(people2);
    console.log(people3);
    console.log(people4);
    
    var people5  = `ID : ${people[1][0]}`;
    var people6 = `NAME : ${people[1][1]}`;
    var people7 = `COMPANY : ${people[1][2]}`;
    console.log(people5);
    console.log(people6);
    console.log(people7);
    
    var people8  = `ID : ${people[2][0]}`;
    var people9 = `NAME : ${people[2][1]}`;
    var people10 = `COMPANY : ${people[2][2]}`;
    console.log(people8);
    console.log(people9);
    console.log(people10);

Ответы [ 5 ]

0 голосов
/ 12 сентября 2018

Вместо этого вы можете изменить структуру людей на массив объектов следующим образом:

var people = [
  { id: 1, name: 'Dimitri', company: 'Microsoft' },
  { id: 2, name: 'Mike', company: 'Microsoft' },
  { id: 3, name: 'John', company: 'Microsoft' },
];

А затем используйте его с любым циклом, который вы хотите, используя деструктуризацию. Примеры:

var people = [
  { id: 1, name: 'Dimitri', company: 'Microsoft' },
  { id: 2, name: 'Mike', company: 'Microsoft' },
  { id: 3, name: 'John', company: 'Microsoft' },
];

// Using for loop
console.log( 'for loop' );
for ( let i = 0; i < people.length; i++ )
{
  const { id, name, company } = people[ i ];
  
  // Do something with id, name and company
  console.log( id, name, company );
}

// Using for each
console.log( 'for each' );
people.forEach( ({ id, name, company }) => {

  // Do something with id, name and company
  console.log( id, name, company );
  
});

// Using for of
console.log( 'for of' );
for ( const { id, name, company } of people )
{
  // Do something with id, name and company
  console.log( id, name, company );
}

Если вы хотите получить больше информации о структуре, вы можете обратиться к документам Mozilla онлайн по адресу https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

0 голосов
/ 12 сентября 2018

Конечно, вы можете:

 var people = [
    [1, 'Dimitri', 'Microsoft'],
    [2, 'Mike', 'Microsoft'],
    [3, 'John', 'Microsoft']
];
for (var i = 0; i < people.length; i++) {
    var item = people[i];
    for (var s = 0; s < item.length; s++) {
        var subitem = item[s];
        switch (s) {
            case 0: console.log('ID :' + subitem); break;
            case 1: console.log('NAME :' + subitem); break;
            case 2: console.log('COMPANY :' + subitem); break;
        }
    }
}

Но используйте массив json в следующий раз.Привет

  var people = [
        { 'ID': 1, 'NAME': 'Dimitri', 'COMPANY': 'Microsoft' },
        { 'ID': 2, 'NAME': 'Mike', 'COMPANY': 'Microsoft' },
        { 'ID': 3, 'NAME': 'John', 'COMPANY': 'Microsoft' }
    ];
    
0 голосов
/ 12 сентября 2018

Вы можете использовать массив для требуемого описания и взять значения массива соответствующего индекса.

var people = [[1, 'Dimitri', 'Microsoft'], [2, 'Mike', 'Microsoft'], [3, 'John', 'Microsoft']],
    keys = ['ID', 'NAME', 'COMPANY'];

people.forEach(a => keys.forEach((k, i) => console.log(`${k} : ${a[i]}`)));
.as-console-wrapper { max-height: 100% !important; top: 0; }

Если вы хотите получить объекты со свойствами имен, вы можете использовать свойства короткой руки

var people = [[1, 'Dimitri', 'Microsoft'], [2, 'Mike', 'Microsoft'], [3, 'John', 'Microsoft']];

console.log(people.map(([ID, NAME, COMPANY]) => ({ ID, NAME, COMPANY })));
.as-console-wrapper { max-height: 100% !important; top: 0; }
0 голосов
/ 12 сентября 2018

Поскольку у вас есть массив, вам определенно следует использовать цикл для его итерации.В этом случае вы должны создать массив объектов вместо массива массивов.

0 голосов
/ 12 сентября 2018

В качестве новичка вы можете просто использовать For loop для итерации 2D-массива. Для желаемого результата вы можете хранить keys в отдельном массиве и печатать как description .

var people = [
  [1, 'Dimitri', 'Microsoft'],
  [2, 'Mike', 'Microsoft'],
  [3, 'John', 'Microsoft']
];
var keys = ["ID","NAME","COMPANY"];
for(var i = 0; i < people.length; i++) {
    var peopeleData = people[i];
    for(var j = 0; j < peopeleData.length; j++) {
        //console.log("people[" + i + "][" + j + "] = " + peopeleData[j]);
         console.log(keys[j]+" : "+ peopeleData[j]);
    }
}
.as-console-wrapper { max-height: 100% !important; top: 10; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...