亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在包含坐標對的數組上使用 find 方法?

如何在包含坐標對的數組上使用 find 方法?

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

1 回答

?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

find數組上的函數接收一個函數作為其第一個參數。該函數接收對數組中元素的引用,然后您必須返回truefalse獲取該元素。如果您希望find函數將該元素作為找到的元素返回,則返回true. 例如,這樣的事情應該可以工作:

if (coordinatesStorage.find(v => v.x === 3 && v.y === 4)) {

這表明它應該返回元素屬性coordinatesStorage所在的第一個元素,并且它的為。x3y4

請注意,該v =>部分是箭頭函數表達式的開頭,其中v是函數的參數,表示數組中正在測試的元素。它也可以擴展為像這樣的常規函數定義:

function vectorPredicate(vector) {  
  return vector.x === 3 && vector.y === 4;
  }

然后,您也可以將該定義的函數傳遞給find調用,它的工作方式相同:

if (coordinatesStorage.find(vectorPredicate)) {

查看 MDN 關于Array.prototype.find的文章以獲取更多詳細信息。



查看完整回答
反對 回復 2022-10-08
  • 1 回答
  • 0 關注
  • 82 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號