gpt4 book ai didi

Javascript array.some() 函数不能正常工作?

转载 作者:行者123 更新时间:2023-12-01 15:50:52 24 4
gpt4 key购买 nike

我正在使用 AngularJS 做一个 Web 项目,但在其中一项控制检查中,我试图实现 array.prototype.some() 函数。不幸的是,它不起作用,并且总是给出错误的。

在我试图找到错误的过程中,我尝试实现一个简单的测试用例,在该测试用例中检查具有数字的数组的值是否高于 5。

测试代码是这样的:

var arrayForTesting = [2, 5, 18];

var result = arrayForTesting.some(function (element, index, array){
element > 5;
});

一些网页暗示我需要索引和数组作为强制参数,但只有元素是我在此测试中需要的唯一参数。

但是,结果仍然是假的,但至少有一个元素高于 5。

我究竟做错了什么?

最佳答案

您没有返回 element > 5 的结果比较;也许你已经看过 ES2015 的“箭头函数”并且将它们的简洁语法与 function 混淆了。函数语法(或者您可能已经看过一些 CoffeeScript)。

使用 function 时语法,您必须返回结果:

var arrayForTesting = [2, 5, 18];
var result = arrayForTesting.some(function (element, index, array){
return element > 5;
// ^^^^^^
});

如果函数在没有 return xyz 的情况下退出语句(或使用 return; 不带操作数),调用函数的结果为 undefined ,这是错误的,所以 some不会停止循环。

在 ES2015 中,如果您使用箭头函数和“简洁的函数体”,则返回是隐式的:
var arrayForTesting = [2, 5, 18];
var result = arrayForTesting.some(element => element > 5);

但只有简洁的正文(没有 {} ),否则你使用 returnfunction 一样功能:
var arrayForTesting = [2, 5, 18];
var result = arrayForTesting.some(element => {
return element > 5;
});

请注意,虽然尖端浏览器正在积极更新其 JavaScript 引擎以添加 ES2015 功能,但实际支持仍然很稀少,您可能需要进行转译以使用箭头函数等 ES2015 功能。 (尤其是如果您需要支持 IE10 等旧版浏览器。)

关于Javascript array.some() 函数不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33165879/

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