第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

有沒有辦法確定我的對象方法是不是函數(shù)

有沒有辦法確定我的對象方法是不是函數(shù)

蕪湖不蕪 2021-10-14 10:24:09
我有一個函數(shù),它遍歷一個對象數(shù)組并返回一個模板文字,它獲取一個屬性值(名稱)和一個作為函數(shù)方法的屬性值(這是 .move / 他們將采取多少步驟) .move方法使用 math.random 選擇隨機數(shù)量的步驟并返回該值。但是,在某些對象中,移動屬性被定義為整數(shù),例如 1 或 2,而不是隨機數(shù)。有沒有辦法更改我的fitnessTest函數(shù),以便它同時接受.move()和.move?我嘗試在我的 while 語句中使用 if else 語句說while (steps <= 20) {  if (typeof arrayObject == function) {    steps += arrayObject[i].move();    turns++;  } else    steps += arrayObject[i].move;    turns++;它返回將 .move 值正確定義為整數(shù)的對象,但不會為具有 .move() 的對象返回隨機數(shù)。function fitnessTest(arrayObject){  let turnsArray = [];  for (i = 0; i < arrayObject.length; i++){    let steps = 0;    let turns = 0;    while (steps <= 20){      steps += arrayObject[i].move();      turns++;    } turnsArray.push(`${arrayObject[i].name} took ${turns} turns to take 20 steps.` );  }      return turnsArray;}現(xiàn)在,該函數(shù)將遍歷一個對象數(shù)組,這些對象.move()作為一個函數(shù)生成一個隨機數(shù)并返回正確的字符串,但是將 .move 設(shè)置為整數(shù)的對象只會給我一個類型錯誤arrayObject[i].move不是函數(shù)
查看完整描述

3 回答

?
Qyouu

TA貢獻1786條經(jīng)驗 獲得超11個贊

檢查typeof數(shù)組元素而不是數(shù)組變量。


var arr = [ { move: 10}, {move: function () {}} ];

console.log(typeof arr) // object

console.log(typeof arr[0].move) // number

console.log(typeof arr[1].move) // function

將您的代碼更改為:


while (steps <= 20) {

  if (typeof arrayObject[i].move === "function") {

    steps += arrayObject[i].move();

    turns++;

  } else   if (typeof arrayObject[i].move === "number")

    steps += arrayObject[i].move;

    turns++


查看完整回答
反對 回復(fù) 2021-10-14
?
守著星空守著你

TA貢獻1799條經(jīng)驗 獲得超8個贊

typeof為您提供一個字符串,因此您需要使用"". 還要比較move屬性而不是對象本身。


您可以根據(jù)自己的目的使用三元運算符,并且可以擁有更優(yōu)雅的代碼。


while (steps <= 20) {

  steps += typeof arrayObject[i].move === "function" ? arrayObject[i].move() : arrayObject[i].move;

  turns++;

}


查看完整回答
反對 回復(fù) 2021-10-14
?
斯蒂芬大帝

TA貢獻1827條經(jīng)驗 獲得超8個贊

1.typeof返回一個字符串值,需要與 JavaScript 類型的字符串進行比較。

2. 你應(yīng)該測試move單個項目的屬性arrayObject是否是一個函數(shù),而不是arrayObject它本身:

typeof arrayObject[i].move == 'function'


查看完整回答
反對 回復(fù) 2021-10-14
  • 3 回答
  • 0 關(guān)注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號