Сохранение результата после вызова функции из массива в другой массив, Javascript, многомерные массивы - PullRequest
0 голосов
/ 12 декабря 2018

Я пишу некоторые функции для работы с многомерным массивом и не могу понять, как сохранить результат, чтобы использовать его в другом месте моей программы (массивах, в которых находится результат в одной функциисохранены локальные и не глобальные).

Скажем, есть массив объектов:

    const objects = [
    ['objectname', objectAge, anotherValue],
    ['objectname2', objectAge2, anotherValue2],
    ['objectname3', objectAge3, anotherValue3]
];

Затем я могу определить функцию и вызвать ее (массив будет напечатан вконсоль)

const objects = [
  ['objectname', objectAge, anotherValue],
  ['objectname2', objectAge2, anotherValue2],
  ['objectname3', objectAge3, anotherValue3]
];

function functionName(array) {
  let objectNames = array.map(function(object) {
    return object[0];
  });

  console.log(objectNames);
}
functionName(objects);

let currentTime = new Date()

let YYYY = (new Date()).getFullYear()

function functionAge(object) {

let ageArray = object.map(function(year) {
let age = YYYY - year[1];
return age;
})
console.log(ageArray);
}

functionAge(objects);

let array1 = ['Name1', 'Name2', 'Name3'],
array2 = [12,11,16],
result =[];

for (let i=0; i< array1.length;i++) {
result.push([array1[i],array2[i]]);
}
console.log(result);


let array3 = functionName(objects);
let array4 = functionAge(objects),
result2 =[];

for (let i=0; i< array3.length;i++) {
result.push([array3[i],array4[i]]);
}
console.log(result2);

Но когда я хочу использовать возвращенный массив и сделать с ним что-то еще, скажем, в другой функции, я пытаюсь сохранить «результат» (чтоЯ считаю, это массив) в новый массив или получить к нему доступ напрямую с помощью

let savedResult = functionName(objects);

или

let savedResult = objects.functionName();

, и он не работает, я либо получаю что-то вроде массива неопределенногоили просто ошибка в моей консоли, говорящая о том, что saveResult.length невозможно вызвать.

Может кто-нибудь дать мне подсказку, где я могу проверить эту опцию JavaScript, чтобы повторно использовать результаты функции, примененной к массиву?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Ваша функция functionName () является функцией void, которая ничего не возвращает, поэтому результат не определен, используйте оператор return для возврата чего-либо для функции, подобной приведенному ниже коду

function functionName(array) {
  let objectNames = array.map(function(object) {
    return object[0];
  });
  return objectNames
}
0 голосов
/ 12 декабря 2018

Возвращаемый объект [0] дает значение переменной objectNames .Но функция functionName не возвращается вместе с ней.Таким образом, он возвращается с неопределенным.

function functionName(array) {
    return array.map(function(object) {
        return object[0];
    })
}
functionName(objects);
...