Работа с JavaScript объектами в консоле chrome

269
17 сентября 2017, 02:32

У меня есть задание, которое звучит так:

Компьютер помещает два массива со случайными строками в Test.data. Нужен один список, содержащий один элемент из a, затем один из b и т.д.

Пример:

a: ['a', 'b', 'c']    
b: ['d', 'e']    
-> ['a', 'd', 'b', 'e', 'c']

Я пробовал этот код, но он просто заменяет данные, которые находятся в Test.data

Test.provide = Test.data = function arry(a, b) {
const c = [];
for (let i = 0; i < Math.max(a.length, b.length); i++) {
    if (a[i] != undefined) {
        c.push(a[i]);
    }
    if (b[i] != undefined) {
        c.push(b[i]);
    }
}
}

Ошибка заключается в том, как я использую функцию. Исходные массивы находятся в Test.data. Результат я сохраняю в Test.provide

Все это я делаю в консоле хрома и работаю с готовыми данными.

Answer 1

Возможно так:

var Test = {};
Test.data = [
    ['a', 'b', 'c', 'd'],
    ['e', 'f'],
];
Test.provide = (function(a, b) {
  var minLength = Math.min(a.length, b.length);
  var c = [];
  for (var i = 0; i < minLength; i++) {
    c.push(a[i]);
    c.push(b[i]);
  }
  if (a.length > b.length) {
      c = c.concat(a.slice(minLength, a.length));
  } else if (a.length < b.length) {
      c = c.concat(b.slice(minLength, b.length));
  }
  return c;
}) (Test.data[0], Test.data[1]);
Answer 2

Во первых:

const c = []; - это уже ошибка. Используй var или let
Test.provide = function arry(Test.data.a, Test.data.b) {
var c = [];
for (let i = 0; i < Math.max(a.length, b.length); i++) {
    if (a[i] != undefined) {
        c.push(a[i]);
    }
    if (b[i] != undefined) {
        c.push(b[i]);
    }
}
return c;
}
Answer 3

может так надо было ТС

Test = { 
    "provide": [], 
    "data": [["a","b","c","d"],["e","f"]] 
}; 
var a = Test.data[0]; 
var b = Test.data[1]; 
for (var i = 0; i < Math.max(a.length, b.length); i++) { 
  if (a[i] != undefined) { 
    Test.provide.push(a[i]); 
  } 
  if (b[i] != undefined) { 
    Test.provide.push(b[i]); 
  } 
} 
console.log(Test.provide);

READ ALSO
Как зафиксировать фон с помощью JS?

Как зафиксировать фон с помощью JS?

Когда я изменяю фон сайта с помощью JS, то не могу его зафиксировать

278
работа с событиями плагина jQuery

работа с событиями плагина jQuery

Использую в проекте плагин "air-datepicker"В нем есть собственные описанные события

299
VueJs createElement и $refs

VueJs createElement и $refs

Всем приветПодскажите пожалуйста как изменить значение свойства одного компонента из другого ? Т

267