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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何將連續(xù)的索引號(hào)添加到數(shù)組中的唯一值

如何將連續(xù)的索引號(hào)添加到數(shù)組中的唯一值

DIEA 2024-01-18 16:26:21
這是我有的一個(gè)數(shù)組:var arr1 = [    { ModuleID : 'one', ModuleValue : 'valueX'},    { ModuleID : 'one', ModuleValue : 'valueV'},    { ModuleID : 'one', ModuleValue : 'valueE'},    { ModuleID : 'one', ModuleValue : 'valueY'},    { ModuleID : 'two', ModuleValue : 'valueZ'},    { ModuleID : 'two', ModuleValue : 'valueB'},    { ModuleID : 'two', ModuleValue : 'valueA'}];我想根據(jù) ModuleID 將連續(xù)的“索引”號(hào)添加到我的數(shù)組中,如下所示:var arr2 = [    { ModuleID : 'one', ModuleValue : 'valueX', index : 0},    { ModuleID : 'one', ModuleValue : 'valueV', index : 1},    { ModuleID : 'one', ModuleValue : 'valueE', index : 2},    { ModuleID : 'one', ModuleValue : 'valueY', index : 3},    { ModuleID : 'two', ModuleValue : 'valueZ', index : 0},    { ModuleID : 'two', ModuleValue : 'valueB', index : 1},    { ModuleID : 'two', ModuleValue : 'valueA', index : 2}];到目前為止,我已經(jīng)想出了這段代碼:var arr2 = [];var index = 0;for (var i = 0; i < arr1.length; ++i) {        if (i < arr1.length && arr1[i].ModuleID = arr1[i+1].ModuleID ) {            index = index + 1;        } else {            index = 0;        };    arr2.push({ModuleID: arr1[i].ModuleID, ModuleValue: arr1[i].ModuleValue, index: index});};但是,它會(huì)重置 ModuleID 最后一個(gè)值的連續(xù)數(shù)字,而不是第一個(gè)值:var arr2 = [    { ModuleID : 'one', ModuleValue : 'valueX', index : 1},    { ModuleID : 'one', ModuleValue : 'valueV', index : 2},    { ModuleID : 'one', ModuleValue : 'valueE', index : 3},    { ModuleID : 'one', ModuleValue : 'valueY', index : 0},    { ModuleID : 'two', ModuleValue : 'valueZ', index : 1},    { ModuleID : 'two', ModuleValue : 'valueB', index : 2},    { ModuleID : 'two', ModuleValue : 'valueA', index : 3}];我該如何改進(jìn)我的代碼?
查看完整描述

5 回答

?
幕布斯7119047

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

let idx = 0;

arr.map((item, i) => {

    if(i == 0 || arr[i].ModuleID != arr[i-1].ModuleID) 

        idx = 0;

    else 

        idx++;

  item['index'] = idx; 

});


查看完整回答
反對(duì) 回復(fù) 2024-01-18
?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以采用哈希表作為分組索引。


var array = [{ ModuleID: 'one', ModuleValue: 'valueX' }, { ModuleID: 'one', ModuleValue: 'valueV' }, { ModuleID: 'one', ModuleValue: 'valueE' }, { ModuleID: 'one', ModuleValue: 'valueY' }, { ModuleID: 'two', ModuleValue: 'valueZ' }, { ModuleID: 'two', ModuleValue: 'valueB' }, { ModuleID: 'two', ModuleValue: 'valueA' }],

    result = array.map(

        (c => o => ({ ...o, index: (c[o.ModuleID] ??= 0, c[o.ModuleID]++) }))

        ({})

    );


console.log(result);


查看完整回答
反對(duì) 回復(fù) 2024-01-18
?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

只需循環(huán)遍歷數(shù)組并檢查 的值,ModuleID并根據(jù)該值添加一個(gè)index屬性,該屬性的值是兩個(gè)可能的計(jì)數(shù)器之一的值,然后遞增。if/then 邏輯可以做得更緊湊,但我在這里使用的是以防稍后添加也需要檢查的switch其他值。ModuleID


var arr1 = [

    { ModuleID : 'one', ModuleValue : 'valueX'},

    { ModuleID : 'one', ModuleValue : 'valueV'},

    { ModuleID : 'one', ModuleValue : 'valueE'},

    { ModuleID : 'one', ModuleValue : 'valueY'},

    { ModuleID : 'two', ModuleValue : 'valueZ'},

    { ModuleID : 'two', ModuleValue : 'valueB'},

    { ModuleID : 'two', ModuleValue : 'valueA'}

];


let a = 0;

let b = 0;


arr1.forEach(function(obj){

  switch (obj.ModuleID) {

    case "one":

      obj.index = a++;

      break;

    case "two":

      obj.index = b++;

      break;

  }

});


console.log(arr1);


查看完整回答
反對(duì) 回復(fù) 2024-01-18
?
一只斗牛犬

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊

var arr2 = [];

var index = 0;

 var transition = false;

for (var i = 0; i < arr1.length; ++i) {

    if (i < arr1.length && arr1[i].ModuleID = arr1[i+1].ModuleID ) {

        index = index + 1;

    } else {

        transition = true;index = index + 1;

    };

arr2.push({ModuleID: arr1[i].ModuleID, ModuleValue: arr1[i].ModuleValue, index: index});                                         

if(transition){ 

 index=0;

transition = false;

}

}; 


查看完整回答
反對(duì) 回復(fù) 2024-01-18
?
慕田峪4524236

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊

那是你想做的嗎?


var arr1 = [

         {ModuleID: 'one', ModuleValue: 'valueX'},

         {ModuleID: 'one', ModuleValue: 'valueV'},

         {ModuleID: 'one', ModuleValue: 'valueE'},

         {ModuleID: 'one', ModuleValue: 'valueY'},

         {ModuleID: 'two', ModuleValue: 'valueZ'},

         {ModuleID: 'two', ModuleValue: 'valueB'},

         {ModuleID: 'two', ModuleValue: 'valueA'}

    ];

    

    function setIndex (item, idx) {

    

       arr1 [idx] .index = idx + 1

    }

    

    arr1.forEach (setIndex)

    

    console.log ("code changed")

    console.log (arr1)


這是生成的結(jié)果


[

  {

    "ModuleID": "one",

    "ModuleValue": "valueX",

    "index": 1

  },

  {

    "ModuleID": "one",

    "ModuleValue": "valueV",

    "index": 2

  },

  {

    "ModuleID": "one",

    "ModuleValue": "valueE",

    "index": 3

  },

  {

    "ModuleID": "one",

    "ModuleValue": "valueY",

    "index": 4

  },

  {

    "ModuleID": "two",

    "ModuleValue": "valueZ",

    "index": 5

  },

  {

    "ModuleID": "two",

    "ModuleValue": "valueB",

    "index": 6

  },

  {

    "ModuleID": "two",

    "ModuleValue": "valueA",

    "index": 7

  }

]


查看完整回答
反對(duì) 回復(fù) 2024-01-18
  • 5 回答
  • 0 關(guān)注
  • 205 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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