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

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

按唯一鍵的最后一個索引過濾數(shù)組

按唯一鍵的最后一個索引過濾數(shù)組

慕運維8079593 2022-12-29 16:24:44
我有一個更改方法,它為不同的用戶進(jìn)行一系列計算,將總金額分成部分并將其附加到他們的名字上。    {payment.caseWorkers.map((worker) => (          <li>            {worker.name}:{worker.role}{" "}            <input              type='text'              name={worker.name}              placeHolder='Enter Percent Split'              onChange={onChange}            />          </li>        ))}  const onChange = (e) => {    setSplit([      ...split,      {        [e.target.name]: 0.01 * payment.paymentAmount * e.target.value * 0.2,      },    ]);  };創(chuàng)造[{mickey gray: 5}, {mickey gray: 50}, {mickey gray : 500}, {steve smith: 5}, {steve smith: 50}, {steve smith: 500}]我需要[{mickey gray: 500}, {steve smith: 500}]按最后一個索引,以防有人放了太多的零e.target.name 是用戶名 e.target.value 是他們輸入的金額所以他們每次輸入一個新的數(shù)組對象時都會創(chuàng)建,理想情況下最后一個條目是該用戶的正確數(shù)字。所以我需要創(chuàng)建一個過濾器來獲取每個唯一 [e.target.name] 的最后一個索引。我試過 (a,x,i) x=> indexOf(a) === i 邏輯,我試過在 foreach 中循環(huán)遍歷 object.keys 這些方法都不起作用
查看完整描述

2 回答

?
天涯盡頭無女友

TA貢獻(xiàn)1831條經(jīng)驗 獲得超9個贊

好吧,它并不是那么優(yōu)雅,但你可以像下面那樣做。


var input = [{"mickey gray": 5}, {"mickey gray": 50}, {"mickey gray" : 500}, {"steve smith": 5}, {"steve smith": 50}, {"steve smith": 500}];


// basically - groupby key

var intermediate = input.reduce( (acc,i) => {

   Object.keys(i).forEach( key => acc.hasOwnProperty(key) ? acc[key].push(i[key]) : acc[key] = [i[key]]);

   return acc;

},{});


// take the key and last item from the values

var result = Object.entries(intermediate).map( entry => {

   var [key,value] = entry;

   return {[key]: value[value.length-1]};

});


console.log(result);


查看完整回答
反對 回復(fù) 2022-12-29
?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗 獲得超13個贊

向后循環(huán)可以完成這項工作,將用戶名和最后索引存儲在單獨的字典中。您從右到左循環(huán)數(shù)組。如果用戶不在字典中(即它是它的最后一個條目),則將其添加到字典中;否則它只會繼續(xù)循環(huán)。


我建議以這種方式存儲每個條目以使循環(huán)更容易:


{ userName: 'mickey gray',

  value: 500 }

循環(huán)可能是這樣的:


let indexDictionary = {};

for(let i = array.length - 1; i >= 0; i--) {

  if(!indexDictionary[array[i].userName]) {

    indexDictionary[array[i].userName] = array[i].value;

  }

}


查看完整回答
反對 回復(fù) 2022-12-29
  • 2 回答
  • 0 關(guān)注
  • 92 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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