我想编写一个函数nestedArrayMinWithRule
,该函数查找嵌套数组的最小值,该值也符合某些条件(规则)。
到目前为止,我的功能是
nestedArrayMinWithRule(data, rule): number {
let minimum = Number.MAX_VALUE;
for (const i of data) {
for (const j of data) {
minimum = (j < minimum && rule(j)) ? j : minimum;
}
}
return minimum;
}
它在其他地方被称为如下:
minimum = nestedArrayMinWithRule(data, ((e) => e !== 0));
但是从结果看来,我要么不是在函数中正确使用rule
调用,要么当它是函数的参数时未定义它的属性。我还尝试将规则分成自己的值,例如:
const rule = ((e) => e !== 0));
minimum = nestedArrayMinWithRule(data, rule);
但这也不起作用。我在做什么错了?
答案 0 :(得分:3)
该错误在您的循环中
for (const i of data) {
for (const j of data) {
minimum = (j < minimum && rule(j)) ? j : minimum;
}
}
我认为这应该是:
for (const i of data) {
for (const j of i) {
minimum = (j < minimum && rule(j)) ? j : minimum;
}
}
有些事情会告诉你: