【发布时间】:2021-02-10 14:05:30
【问题描述】:
我正在尝试编写一个接收二维数组的函数,并且必须返回仅包含偶数的向量。不应该复制偶数数组,只是看看所有数字是否都是偶数并返回它。
var table = [ [1,2,3,4], [1,4,2,1], [9,9,9,9], [2,4,6,8] ] // -> [2,4,6,8]
我不确定 if 条件和循环内的返回,但这就是我所拥有的:
var getTable=function(arr) {
for(var i=0; i<arr.length; i++) {
for(var j=0; j<arr[i].length; j++) {
if((arr[i][j]%2)===0) {
return arr[i][j];
}
}
}
}
谢谢。
【问题讨论】:
-
该代码将返回它找到的第一个偶数元素,即 2。您需要
return arr.filter(iArr => iArr.every(e => e % 2 === 0)),这将删除所有不包含所有偶数的数组。 -
这个任务最合适的Array函数大概是
Array#find -
@ChrisG,谢谢你的回答。我觉得这就是。我只是在实现它时遇到了麻烦(这是我的第一周编码)。我不完全理解语法。什么是艾瑞?我正在尝试使用
return arr.filter(arr[i] => arr[i][j].every(e => e % 2 === 0))。但我收到错误 Malformed arrow function parameter list -
我使用了一个短箭头形式(并在里面嵌套了一个 .every 调用),但你也可以传递
function (iArr) { return someBooleanExpression; }。iArr是“内部数组”的缩写;理解它在这里如何工作的关键概念是,通常,你调用一个现有的函数,并提供你自己的参数,比如alert("hello")。但是,在这里,您提供了 function,因此您只需根据自己的喜好命名参数,然后对它们执行一些操作。更长的解释:jsfiddle.net/khrismuc/xz6y51db -
我不确定你在问什么?你看过我之前评论中的小提琴吗?从第 19 行开始,有三个示例说明如何执行此操作,每个示例都使用逐渐缩短的语法。第 20-24 行应该正是您要查找的内容,不是吗?你是什么意思“你还没有弄清楚”?还没弄清楚什么,究竟是什么?非常基本的
find()示例:jsfiddle.net/orfwtmL6
标签: javascript loops multidimensional-array nested