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

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

腳本:當元素存在于數組中時,為什么索引函數返回 -1?

腳本:當元素存在于數組中時,為什么索引函數返回 -1?

慕蓋茨4494581 2022-09-23 21:28:53
我創建了一個矩陣,如下所示:u = Array.from({ length: 100}, (v, i) => []);  console.log(u)然后,在運行代碼并填充矩陣之后。我想特別獲得最小元素的索引,row.so 結果應該是0或1。act[i] = u.indexOf(Math.min.apply(null,u[i]));但是,我有時會得到-1。我讀到負數意味著元素在數組中不存在。就我而言,它始終存在。檢查它是否存在,我使用過它確實始終存在,但由于某種原因,它仍然返回-1作為索引。console.log()
查看完整描述

1 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

你可以這樣做:


循環遍歷您的Matrix,通過將該行傳遞到函數中來找到該行的最小值 - 使用擴展語法(將數組項“解包”到函數參數中)。將此最小值放入數組中,或者將此最小值的索引放入數組中(或者您可以同時執行這兩項操作)。Math.min()const min_val = Math.min(...u[row]);actact[row] = min_val;act[row] = u[row].indexOf(min_val);


如果您不需要所有最小值/索引(只需要按需給定的行),則可以使用底部的函數。


const ROWS = 100;

const COLS = 5;


const u = Array.from({ length: ROWS}, (v, i) => []);


//let's fill the Matrix:

for (let row = 0; row < u.length; row++){

  for (let col = 0; col < COLS; col++){

    u[row].push(Math.random());

  }  

}


console.log(u)


//Create an array of all min values/indexes:

const act = Array(u.length);


for (let row = 0; row < u.length; row++){

  const min_val = Math.min(...u[row]);

  //put min value in:

  //act[row] = min_val;

  

  //or put min value index in:

  act[row] = u[row].indexOf(min_val);

  

  //or you could do both:

  //act[row] = [ min_val, u[row].indexOf(min_val) ];

}


console.log(act)


//if you just want to get any min index of any row on the fly use this function:

function getMinIndexAtRow(inputArr, row){

  const min_val = Math.min(...inputArr[row]);

  return u[row].indexOf(min_val);

}


//use it like this:

console.log(getMinIndexAtRow(u, 0));


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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