如何从JavaScript例程返回多个数组

时间:2017-03-05 06:22:39

标签: javascript arrays parameter-passing

我看到这个问题在这里已经出现了几次,但我的情况有点不同。我是JavaScript的新手,这是一个显示问题的基本程序。

a, b, c = someFunc(a, b, c) 

我在调用someFunc时遇到错误。错误是"发生异常:引用错误:x未定义"。

所以我正在做的是调用一个函数来在每次循环时更新一些数组。我需要能够从名为' someFunc'的函数中取出这些数组。这样我就可以将它们传递给另一个函数来对它们做一些其他的工作。

然后我需要再次将它们反馈到第一个函数中...依此类推,直到我完成。

我来自Python,其中的电话如

<timer ng-if="timeBonPlan" countdown='timeBonPlan' interval="1000" >{{days}} Jours, {{hours}}:{{minutes}}:{{seconds}}</timer>

很好。

但我不知道如何继续使用JavaScript。任何帮助将非常感激。很高兴澄清我的问题是否不完全清楚。

2 个答案:

答案 0 :(得分:0)

将函数的值设置为标识符,然后使用解构赋值来全局设置属性并获取属性。

let props = someFunc(x, y, z);
({done, x, y, z} = props);
console.log(x, y, z);

答案 1 :(得分:0)

如果传递数据对象,则可以在不需要返回代码的情况下更改对象的值。

var iterations = 0;

function someFunc(obj) {

    for (var i = 0; i < 4; i++) {
        obj.x[i] = obj.x[i] * 2;
        obj.y[i] = obj.y[i] * 2;
        obj.z[i] = obj.z[i] * 2;
    }

    iterations++;

    if (iterations >= 10)
        obj.done = true;
    else
        obj.done = false;

}

function main() {

    var objectOfData = {
        x: [0, 0, 0, 0],
        y: [1, 1, 1, 1],
        z: [2, 2, 2, 2],
        done: false,
    };

    while (!objectOfData.done) {

        someFunc(objectOfData);
        console.log(JSON.stringify(objectOfData));
        // Using stringify, as console.log() is async

        // Do some other stuff with x,y,z here,
        // like calling anotherFunc(x, y, z)

    }
}

此外,您只需要声明一次var, let, etc