2016-08-22 86 views
1

any聽起來更加原生,some種暗示與謂詞事項相匹配的項目數量。爲什麼不將Array.prototype.some命名爲.any?

爲什麼標準名稱的方法一些而不是任何?

+1

只是一個猜測,但是一些流行的庫可能已經對'Array.prototype'使用了'any'方法。 –

+0

IIRC是以最小化與現有網站衝突的方式命名的多種方法之一。 – zzzzBov

+0

@zzzzBov所以現有的圖書館採取了最好的名稱和標準必須選擇一個奇怪的名字..它是如此傷心...... – Gqqnbig

回答

4

這是因爲prototype.js,其中添加了Iterable.any方法的數組原型。這種做法現在出於很好的理由而被忽視,但原型是最早的圖書館之一,而且IIRC也是遵循軌道引導(rails monkey-patches Ruby的內置類)。

TC-39通常會向後彎曲以避免任何破損,AFAIK標準做法是抓取網絡並查看使用範圍有多廣泛,此時做出決定,幾乎總是選擇另一個名稱。

2

我不知道這個名字的歷史。然而,聲明

array.some(func) 

將數學上被翻譯成

∃ i ∈ {0, …, length(array)-1} : func(array_i, i, array) 

這是即使在spec提到:

some行爲就像數學的 「存在」 量詞。

而英語中的∃ quantifier也被稱爲「for some」。

所以,「一些」似乎對我很好。

+2

這是一個很好的觀點:與存在量詞的關係。 –

+0

從這個意義上說,存在對我來說會更好。 – Gqqnbig

+0

@LoveRight但'array.exists(func)'可能與'array.includes(func)'混淆。我想'array.existsItemSuchThat(func)'可以工作,但它太長了。 – Oriol

相關問題