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

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

ReactJS:如何防止 array.push 中的重復(fù)值?

ReactJS:如何防止 array.push 中的重復(fù)值?

蕪湖不蕪 2021-12-23 15:52:28
此時在選擇框中選擇一個選項時,其余選項將變?yōu)槎鄠€值。我怎樣才能防止這種重復(fù)值?import Select from 'react-select';const dataOptions = []; class App extends React.Component {    constructor(props) {        super(props);        this.data = [];        this.getData();    }    getData = () => { api.request({url: `/getdata`}).then(res => res.map(el => this.data[el.id] = el.name)) }    addData = () => {        const { selectedId } = this.state;        var datas = this.data;        console.log(datas);        datas.map((name, index) => {            if (!dataOptions.includes(name)) {                console.log('b4 push:', dataOptions)                dataOptions.push({ value: index, label: name });                console.log('aftr push:', dataOptions)            }        });        return (            <Select options={dataOptions}            isMulti            />        );    }}此語法中發(fā)生了一些錯誤:datas.map((name, index) => {  if (!dataOptions.includes(name)) {       dataOptions.push({ value: index, label: name });  }}); 控制臺結(jié)果[ "data-1", "data-2", "data-3"]b4 push: [  {value: 1, label: "data-1"}  {value: 2, label: "data-2"}  {value: 3, label: "data-3"}]aftr push: [  {value: 1, label: "data-1"}  {value: 2, label: "data-2"}  {value: 3, label: "data-3"}]PS:在后推我已經(jīng)從下拉菜單中選擇了第一個選項;所以結(jié)果 if 不應(yīng)該顯示在數(shù)組值中。提前致謝...!
查看完整描述

1 回答

?
白豬掌柜的

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

該destructuring語法應(yīng)該像下面


datas.map(({name, index}) => {

      if (!dataOptions.includes(name)) {

           dataOptions.push({ value: index, label: name });

      }

    }); 

此外,您不需要外部數(shù)組來將數(shù)據(jù)推送到 map 函數(shù)中,因為該函數(shù)默認返回一個數(shù)組,您可以像下面這樣簡單地做


 let expected_data=datas.map(({name, index}) => {

              if (!dataOptions.includes(name)) {

                 return  { value: index, label: name };// return a value

              }

            }); 

該expected_data項目將包含手術(shù)后需要的數(shù)據(jù)


看片段——


let data = [{

  "name": 1,

  "index": 2

}, {

  "name": 11,

  "index": 21

}]


console.log(data.map(({

  index,

  name

}) => {


  return {

    value: index,

    label: name

  }


}))


你最好使用Array.some()你正在尋找的東西


 datas.map((name,index) => { // here index is the iterator

                if(!dataOptions.some(({value,label})=>label==name  ))

            {

                   dataOptions.push({ value: index, label: name });

              }

            }); 


查看完整回答
反對 回復(fù) 2021-12-23
  • 1 回答
  • 0 關(guān)注
  • 333 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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