狐的傳說
2022-10-08 15:57:31
我有這門課如下。x 和 y 是二維坐標(biāo)class Vector { constructor(x, y) { this.x = x; this.y = y; }}我有一個(gè)數(shù)組來存儲(chǔ)坐標(biāo) x 和 yconst coordinatesStorage = [];coordinatesStorage.push(new Vector(1, 2));coordinatesStorage.push(new Vector(3, 4));coordinatesStorage.push(new Vector(4, 6));我想查找坐標(biāo)存儲(chǔ)數(shù)組中是否存在坐標(biāo)(3,4)if ( coordinatesStorage.find(Vector{x:3, y:4}) ) { gameOver = true;} // this code does not work不幸的是,上面提到的是我的蹩腳方法,它無(wú)效并且返回控制臺(tái)錯(cuò)誤。我有 C++ 背景。我正在嘗試將我的 Cpp 代碼轉(zhuǎn)換為 JS。請(qǐng)幫助該代碼以查找坐標(biāo)存儲(chǔ)數(shù)組中是否存在坐標(biāo)(3,4)
1 回答

一只甜甜圈
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
find
數(shù)組上的函數(shù)接收一個(gè)函數(shù)作為其第一個(gè)參數(shù)。該函數(shù)接收對(duì)數(shù)組中元素的引用,然后您必須返回true
或false
獲取該元素。如果您希望find
函數(shù)將該元素作為找到的元素返回,則返回true
. 例如,這樣的事情應(yīng)該可以工作:
if (coordinatesStorage.find(v => v.x === 3 && v.y === 4)) {
這表明它應(yīng)該返回元素屬性coordinatesStorage
所在的第一個(gè)元素,并且它的為。x
3
y
4
請(qǐng)注意,該v =>
部分是箭頭函數(shù)表達(dá)式的開頭,其中v
是函數(shù)的參數(shù),表示數(shù)組中正在測(cè)試的元素。它也可以擴(kuò)展為像這樣的常規(guī)函數(shù)定義:
function vectorPredicate(vector) { return vector.x === 3 && vector.y === 4; }
然后,您也可以將該定義的函數(shù)傳遞給find
調(diào)用,它的工作方式相同:
if (coordinatesStorage.find(vectorPredicate)) {
查看 MDN 關(guān)于Array.prototype.find的文章以獲取更多詳細(xì)信息。
添加回答
舉報(bào)
0/150
提交
取消