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

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

類型錯誤:fns[(x * 2)] 不是函數

類型錯誤:fns[(x * 2)] 不是函數

蝴蝶刀刀 2023-07-20 15:08:58
所以我有一個作業問題需要解決。要求只是修復代碼,以便控制臺顯示 true var x = 2, fns = [];(function () {  var x = 5;  for (var i = 0; i < x; i++) {  //  write here   }})();// DO NOT MODIFY BELOW CODEconsole.log(x * 2===fns[x * 2]());// console must show true控制臺輸出是未捕獲的類型錯誤:fns[(x * 2)] 不是函數我嘗試重寫函數作為數組中的元素之一,但控制臺仍然顯示錯誤。我重寫了fns[x * 2]()to fns[x * 2],控制臺顯示 return false (這很好,因為至少它不會拋出錯誤),但無法根據要求修改它
查看完整描述

2 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

數組的每個元素都需要是一個返回其在數組中當前索引的函數:


var x = 2,

  fns = [];


(function() {

  var x = 5;


  for (let i = 0; i < x; i++) {

    fns[i] = () => i;

  }

})();


// DO NOT MODIFY BELOW CODE

console.log(x * 2 === fns[x * 2]());

// console must show true

確保用 , letnot聲明索引變量varvar 有問題)。

或者,更實用的是:

const fns = Array.from(

  { length: 5 },

  (_, i) => () => i

);


let x = 2;

// DO NOT MODIFY BELOW CODE

console.log(x * 2 === fns[x * 2]());

// console must show true


查看完整回答
反對 回復 2023-07-20
?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

您需要一個帶有 IIFE 的閉包來獲取該值。


var x = 2,

    fns = [];


(function() {

    var x = 5;


    for (var i = 0; i < x; i++) {

        fns[i] = function (v) {

            return function () { return v; };

        }(i);

    }

})();


// DO NOT MODIFY BELOW CODE

console.log(x * 2 === fns[x * 2]());

// console must show true


查看完整回答
反對 回復 2023-07-20
  • 2 回答
  • 0 關注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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