Javascript 函数迭代查询
我的任务是创建一个遍历数组的函数。下面是我所拥有的,但是我得到了Javascript 函数迭代查询,javascript,arrays,function,Javascript,Arrays,Function,我的任务是创建一个遍历数组的函数。下面是我所拥有的,但是我得到了未定义的。我错过了什么 函数lookingForDave(arr){ 对于(变量i=0;i
未定义的。我错过了什么
函数lookingForDave(arr){
对于(变量i=0;i console.log(lookingForDave(testArray))
您需要根据值检查数组的元素,如果找到,则返回,否则在函数末尾返回'Not Dave'
如果在第一次检查值时返回,并且返回not found,则忽略所有其他元素进行检查
函数lookingForDave(数组){
对于(var i=0;i console.log(lookingForDave(testArray))
您需要根据值检查数组的元素,如果找到,则返回,否则在函数末尾返回'Not Dave'
如果在第一次检查值时返回,并且返回not found,则忽略所有其他元素进行检查
函数lookingForDave(数组){
对于(var i=0;i console.log(lookingForDave(testArray))代码>这里是另一个解决方案:
function lookingForDave(array) {
return array.some(el => el === "Dave") ?
"It's Dave" :
"Not Dave!";
}
var testArray = ["Dave", "Bob", "Sam"];
console.log(lookingForDave(testArray));
这是它的工作原理:
some()
接受为数组中的每个元素运行的函数。作为参数传递的函数必须返回truthy或falsy值。
如果这些返回语句中有一条是真的,some()
返回真的。
使用三元运算符检查是否为真,返回“是Dave”,否则返回“不是Dave!”
希望有帮助 这里还有另一个解决方案:
function lookingForDave(array) {
return array.some(el => el === "Dave") ?
"It's Dave" :
"Not Dave!";
}
var testArray = ["Dave", "Bob", "Sam"];
console.log(lookingForDave(testArray));
这是它的工作原理:
some()
接受为数组中的每个元素运行的函数。作为参数传递的函数必须返回truthy或falsy值。
如果这些返回语句中有一条是真的,some()
返回真的。
使用三元运算符检查是否为真,返回“是Dave”,否则返回“不是Dave!”
希望有帮助 您可以使用find而不是for循环。看起来你想在第一次找到匹配项后返回。Array.find将返回第一个匹配条件的值
在以下情况下,如果数组中的元素等于Dave。如果没有匹配项,那么我们将遍历数组中的每个项并返回undefined
然后,我们可以使用条件(三元)运算符来测试是否找到项
function lookingForDave (arr){
const found = arr.find(el => el === 'Dave');
return found ? 'found him' : 'Not Dave';
}
let testArray = ['Dave'];
lookingForDave(testArray);
您可以使用find而不是for循环。看起来你想在第一次找到匹配项后返回。Array.find将返回第一个匹配条件的值
在以下情况下,如果数组中的元素等于Dave。如果没有匹配项,那么我们将遍历数组中的每个项并返回undefined
然后,我们可以使用条件(三元)运算符来测试是否找到项
function lookingForDave (arr){
const found = arr.find(el => el === 'Dave');
return found ? 'found him' : 'Not Dave';
}
let testArray = ['Dave'];
lookingForDave(testArray);
这种代码毫无意义。数组方法如何等于字符串?您甚至没有一致地使用参数名称。这段代码毫无意义。数组方法如何等于字符串?您甚至没有始终如一地使用参数名称。这仅在元素本身不是伪值时才有效,因为find
返回元素。True,感谢您突出显示它。另一个提示是,它是。仅当元素本身不是伪值时才有效,因为find
返回元素。True,谢谢你强调这一点。只是另一个提示,这是一个。