JavaScript 快速提示:some() 方法

2025-06-09

JavaScript 快速提示:some() 方法

我最近学到了一个很棒的 JavaScript 方法,之前从未用过。这是Wes Bos推荐给我的。这个some()方法可以方便地测试数组的值,并判断是否至少返回一个值true。它在 ES6 之前就已实现,并且得到了广泛的some()支持(IE 11 也支持它)。

需要注意的是,此方法仅适用于 true Array。其他可迭代类型未实现此方法。

问题:你有一个数组,里面记录了酒店允许携带的动物种类。你如何确定你的宠物蛇“Slithers先生”是否可以随你一起旅行?

较旧的方法:

var animals = ['dogs', 'cats', 'snakes', 'birds', 'pandas'];
var snakesAllowed = false;

for (var i = 0; i < animals.length; i++) {
  if(animals[i] === 'snakes') {
    snakesAllowed = true;
    break;
  }
}

console.log(snakesAllowed); // true

使用.some()

// Using arrow functions
const animals = ['dogs', 'cats', 'snakes', 'birds', 'pandas'];

const snakesAllowed = animals.some((type) => type === 'snakes');

console.log(snakesAllowed); // true

// Using normal functions
const animals = ['dogs', 'cats', 'snakes', 'birds', 'pandas'];

const snakesAllowed = animals.some(function(type) {
  return type === 'snakes';
});

console.log(snakesAllowed); // true

附录:

@attacomsian在评论中提到,这.includes()更适合解决上述问题。我完全同意。上面的例子只是为了说明.some()它的工作原理,而不是以最有效的方式解决问题。

为了说明.some()功能的另一个例子,假设我们有一系列漫画书的价格,我们想知道是否有任何价格超过 10 美元。

const prices = [5, 8, 11, 10, 25];
const aboveTen = prices.some((price) => price > 10);

console.log(aboveTen); // true

进一步阅读:MDN 网络文档

鏂囩珷鏉ユ簮锛�https://dev.to/mattsparks/quick-javascript-tip-the-some-method-207j
PREV
热点、误区和谎言——为什么除了我之外,每个人都对 DevOps 存在误解
NEXT
给初级开发人员的快速建议