gpt4 book ai didi

javascript - 在数组中查找值然后使用 Angular forEach 返回 true

转载 作者:可可西里 更新时间:2023-11-01 01:36:31 24 4
gpt4 key购买 nike

我正在学习 JavaScript 和 AngularJS。

这段代码有什么区别?

function isInArrayNgForeach(field, arr) {
angular.forEach(arr, function(value, key) {
if(field == value)
return true;
});
return false;
} // This returns always false

function isInArrayJavaScript(field, arr) {
for(var i = 0; i < arr.length; i++) {
if(field == arr[i])
return true;
}
return false;
} // This works fine

function isInArray() {
var testArr = ['stack', 'over', 'flow'];
console.log(isInArrayNgForeach('stack', testArr)); // return false
console.log(isInArrayJavaScript('stack', testArr)); // return true
}

我的问题是:为什么 isInArrayNgForeach 总是返回 false?我假设是因为函数内部有一个函数,但我不确定为什么。

最佳答案

第一个选项不同,因为 return true; 从作为参数传递给 forEach 函数的函数返回,而不是从外部函数 isInArrayNgForeach 这就是为什么最后一行 return false; 总是在 forEach 完成时被调用。这使得该函数始终返回 false。

如果您像这样更改代码,tt 将返回预期结果:

function isInArrayNgForeach(field, arr) {
var result = false;

angular.forEach(arr, function(value, key) {
if(field == value)
result = true;
});

return result;
}

关于javascript - 在数组中查找值然后使用 Angular forEach 返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25061248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com