Добавить одно и то же значение в несколько массивов - PullRequest
0 голосов
/ 07 июня 2018

Мне нужно выдвинуть одно и то же значение в массив массивов.

values.map(function(){
   for (i=0; i<= values.length; i++){
      values[i].push('AdWords');
   } 
});

Проблема состоит в том, что задавать 2 раза одно и то же значение только в 1 массиве

[
 [
  "2018-06-06",
  "Services",
  "65",
  "1",
  "4690000",
  "4690000",
  "1.54%",
  "AdWords",
  "AdWords"
 ],
 [
  "2018-06-06",
  "Services",
  "65",
  "1",
  "4690000",
  "4690000",
  "1.54%"     
 ]
]

Ответы [ 4 ]

0 голосов
/ 07 июня 2018

Вы можете использовать оператор for...of, если можете использовать ES6

var values = [
  [
    "2018-06-06",
    "Services",
    "65",
    "1",
    "4690000",
    "4690000",
    "1.54%"
  ],
  [
    "2018-06-06",
    "Services",
    "65",
    "1",
    "4690000",
    "4690000",
    "1.54%"
  ]
];


for (let val of values) {
  val.push('AdWords');
};

console.log(values);
0 голосов
/ 07 июня 2018

Это работает для меня

for (i=0; i< values.length; i++){
  values[i].push('AdWords');
} 
0 голосов
/ 07 июня 2018

Для этой операции вы можете использовать простой for loop.

Рабочий пример:

/* VALUES ARRAY */

var values = [
  [
  "2018-06-06",
  "Services",
  "65",
  "1",
  "4690000",
  "4690000",
  "1.54%"
 ],

 [
  "2018-06-06",
  "Services",
  "65",
  "1",
  "4690000",
  "4690000",
  "1.54%"     
 ]
];



/* OPERATION */

for (let i = 0; i < values.length; i++) {

    values[i].push('AdWords');
};



/* RESULT */

console.log(values);

NB Обратите внимание на использование let для объявления переменной итератора цикла i.

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

Источник: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let

0 голосов
/ 07 июня 2018

Если вы пытаетесь изменить массив, вы должны использовать forEach вместо map

let values = [
  ["2018-06-06","Services","65","1","4690000","4690000","1.54%",],
  ["2018-06-06","Services","65","1","4690000","4690000","1.54%"]
];

values.forEach(function(o) {
  o.push('AdWords');
});

console.log(values);
...