在将数组上的函数调用到另一个数组(Javascript,多维数组)中后保存结果

时间:2018-12-12 13:21:41

标签: javascript arrays function multidimensional-array

我正在编写一些要在多维数组上运行的函数,但无法弄清楚如何保存结果以在程序的其他位置使用它(在一个函数中的数组所在的位置)保存的是本地的,而不是全局的。

比方说,有一个对象数组:

$this->crud->addfield([
'label' => 'Price',
'name' => 'price',
'tab' => 'Prices',
'type' => 'number',
'entity' => 'product',
'model' => 'App\Models\Product'
]);

然后我可以定义一个函数并调用它(一个数组将被打印到控制台上)

    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);

并且它不起作用,我要么得到一些未定义的数组,要么在控制台中看到一个错误,提示无法调用saveResult.length。

有人可以给我一个提示,在这里我可以检查JavaScript选项以重用应用于数组的函数的结果吗?

2 个答案:

答案 0 :(得分:0)

返回对象[0] objectNames 变量赋值。但是 functionName 函数不会随它一起返回。因此它返回“未定义”。

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

答案 1 :(得分:0)

您的函数functionName()是一个空函数,它不会返回任何内容,因此结果是不确定的。使用return语句为该函数返回东西,如下面的代码

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