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

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

只刪除一個數組中的最小值。JS

只刪除一個數組中的最小值。JS

烙印99 2022-01-07 16:33:00
這是任務。給定一個整數數組,刪除最小值。不要改變原始數組/列表。如果有多個具有相同值的元素,則刪除具有較低索引的元素。如果您得到一個空數組/列表,則返回一個空數組/列表。不要更改剩余元素的順序。這是刪除所有最小值的代碼。function smallest(arr) {  return arr.filter((it) => it !== Math.min.apply(null, arr)) }這是保留所有重復項的代碼。const aa = arr.filter((it,index) => arr.indexOf(it) !== index)我想以某種方式將它們結合起來以獲得結果,但仍然無法做到。是否可以或需要使用其他方式?也許你知道如何用reduce解決它?
查看完整描述

3 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

找到最小的,找到它的索引,過濾掉該索引中的項目:


function removeSmallest(arr) {

  const smallest = Math.min(...arr);

  const index = arr.indexOf(smallest);

  

  return arr.filter((_, i) => i !== index);

}


const result = removeSmallest([2, 1, 5, -10, 4, -10, 2])


console.log(result)


查看完整回答
反對 回復 2022-01-07
?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

使用indexOf()獲得的最小元素的索引。然后用于slice()獲取該索引之前和之后的所有內容,并將它們與concat()


const arr = [10, 3, 5, 8, 1, 2, 1, 6, 8];

const smallest = Math.min(...arr);

const smallestIndex = arr.indexOf(smallest);

const newArr = arr.slice(0, smallestIndex).concat(arr.slice(smallestIndex+1));

console.log(newArr);


查看完整回答
反對 回復 2022-01-07
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

function removeSmallest(numbers) {

    let indexOfMin = numbers.indexOf(Math.min(...numbers));

    return [...numbers.slice(0, indexOfMin), ...numbers.slice(indexOfMin + 1)];

}


查看完整回答
反對 回復 2022-01-07
  • 3 回答
  • 0 關注
  • 260 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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