如何将两个参数传递给 js 对象,包括数组?

How do I pass two parameters to a js object, including an array?

我是 Max 的新手,正在努力理解如何使用数组和 Javascript 参数。

我有一个输出数组的工作 js 对象:

var inlets = 1;
var outlets = 1;

function getRandomChordProgression()
{       
    outlet(0, [1,4,5]);
    return [1,4,5];
}

然后我想在另一个 js 对象中使用该数组,它接受一个数组和一个整数:

var inlets = 2;
var outlets = 1;

function getCurrentChord(chords, barNumber)
{
    var chord = chords[barNumber % 3];
    outlet(0, chord);
    return chord;
}

我尝试了下面的方法,但是 js 得到了未定义的输入。

首先要注意的是,在 Max Msp 中,为了将列表分配给单个交易品种,您需要使用 "tosymbol" 对象。即使列表在 Max Msp 中被有效地视为单维数组,为了被 javascript 理解,它们首先需要被转换。将列表转换为符号后,我们可以将它与来自数字框的整数连接起来,将其与 getCurrentChord 消息打包并将其提供给 getCurrentChord.js 对象。

您将看到,通过将列表转换为符号,数组中的每个字符(包括空格)都被视为数组的一部分。因此,使用您的示例,一个由 3 个整数组成的数组将占据 5 个位置,从 0 到 4。为了使其正常工作,在第二个 .js 脚本中,模运算符需要设置为 5,以便拥有最大值4 的余数。这意味着通过将数字框设置为 1 或 3,您将得到一个空输出。因此,您需要决定如何以及是否解析输入或输出,以便仅获取所需的值。

var inlets = 2;
var outlets = 1;

function getCurrentChord(chords, barNumber)
{ 
 var chord = chords[barNumber % 5];
 outlet(0, chord);
}

希望对您有所帮助!