我有一个函数有两个参数,例如,什么是使用一些逻辑数组处理函数的例子?
function test(a, b) {
if (a == b) return true;
return false;
};
我要的是有一个功能func(arg)
,默认情况下返回false
。它需要一个参数,而这个参数将是一个数组数组。
var myNumber = randomIntegerFrom0To10;
var tmp = 0;
test(arg[0][0], arg[1][0]);
test(arg[0][0], arg[1][1]);
test(arg[0][0], arg[1][2]);
...
,并为:函数的每个实例将与一些动态生成的编号(整数),姑且称之为myNumber
,让我们说这是刚刚从0到10的一些随机整数此功能应该做到以下几点开始一旦test(...)
回报true
,设置tmp++
,去
test(arg[0][1], arg[1][0]);
test(arg[0][1], arg[1][1]);
test(arg[0][1], arg[1][2]);
....
,并尽快test(...)
回报true
,设置tmp++
,去
test(arg[0][2], arg[1][0]);
test(arg[0][2], arg[1][1]);
test(arg[0][2], arg[1][2]);
...
...等等,直到
test(arg[0][arg[0].length-1], arg[1][0]);
test(arg[0][arg[0].length-1], arg[1][1]);
test(arg[0][arg[0].length-1], arg[1][2]);
...
- 一如既往,只要test(...)
回报true
,设置tmp++
,但test(arg[0][arg[0].length-1], arg[1][arg[1].length-1])
后,就要检查一下是否tmp
等于myNumber
。如果是,则该函数应返回true
并停止;但如果没有,我们必须继续(注意,我们总是myNumber
每次比较后置tmp = 0
):
tmp = 0;
test(arg[0][0], arg[2][0]);
test(arg[0][0], arg[2][1]);
test(arg[0][0], arg[2][2]);
...
,并尽快test(...)
回报true
,设置tmp++
...等等。如果我们从来没有看到tmp
等于myNumber
,我们最终会
test(arg[0][0], arg[arg.length-1][0]);
test(arg[0][0], arg[arg.length-1][1]);
test(arg[0][0], arg[arg.length-1][2]);
继续上述逻辑。这里最长的办法是去
test(arg[0][(arg[0].length-1)], arg[arg.length-1][(arg[arg.length-1].length-1)]);
并检查当前tmp
。如果等于myNumber
,函数应该返回true
并停止,但如果没有,我们必须继续:
tmp = 0;
test(arg[1][0], arg[2][0]);
test(arg[1][0], arg[2][1]);
test(arg[1][0], arg[2][2]);
...
...继续下去,直到
test(arg[1][(arg[1].length-1)], arg[arg.length-1][(arg[arg.length-1].length-1)]);
,并检查当前tmp
。与往常一样,要么返回true
或继续:
tmp = 0;
test(arg[2][0], arg[2][0]);
test(arg[2][0], arg[2][1]);
test(arg[2][0], arg[2][2]);
...等等。最长理论上是可行的办法,是去
test(arg[arg.length-2][(arg[arg.length-2].length-1)],
arg[arg.length-1][(arg[arg.length-1].length-1)]);
,如果当前tmp
等于myNumber
,返回true
。否则,返回false
并最终停止。
例子:
var myNumber = 1;
var tmp = 0;
var input1 = [ [ 4, 5 ],
[ 3, 2, 8, 7, 1, 10 ],
[ 9, 4, 8, 50 ],
[ 10, 20, 30]
];
// 4 !== 3; tmp == 0;
// 4 !== 2; tmp == 0;
// 4 !== 8; tmp == 0;
// ...4 !== 10 ; tmp == 0;
// 5 !== 3 ; tmp == 0;
// 5 !== 2 ; tmp == 0;
// ...5 !== 10 ; tmp == 0; is the current tmp equal to myNumber? No. So, continue:
// 3 !== 9 ; tmp == 0;
// 3 !== 4 ; tmp == 0;
// 3 !== 8 ; tmp == 0;
// 3 !== 50 ; tmp == 0;
// 2 !== 9 ; tmp == 0;
// ...2 !== 50 ; tmp == 0;
// 8 !== 9 ; tmp == 0;
// 8 !== 4 ; tmp == 0;
// test(8,8) returns true; set tmp++ and, since there is no need for test(8,50), go to
// 7 !== 9 ; tmp == 1;
// ...7 !== 50 ; tmp == 1;
// 1 !== 9 ; tmp == 1;
// ...10 !== 50; tmp == 1; is the current tmp equal to myNumber? Yes.
// So, return true and stop.
如果我们有这样的输入:
var input2 = [ [ 1, 2 ],
[ 3, 4, 5, 6, 7, 8 ],
[ 9, 10, 11, 12 ],
[ 13, 14, 15]
];
那么我们将不得不进行“测试”操作的最大可能的量和test(12,15
后返回false
)。
问题是:什么是任何工作函数的例子,例如,遵循上述逻辑,将执行两个给定输入示例所描述的操作:267149和func(input2)
?
你的问题是什么?顺便说一句,如果(a == b)返回true;返回false;'完全等价于写'return a == b;'。 – 2016-10-05 04:57:33
编辑了这个问题和它的标题,并添加了问题本身。我只需要这样的功能的例子,就这些。 –