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

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

.sort() 在數(shù)組上不起作用 ( javascript)

.sort() 在數(shù)組上不起作用 ( javascript)

ITMISS 2022-08-18 10:52:57
我正在嘗試通過首先創(chuàng)建對(duì)象來使數(shù)據(jù)更易于管理,從而將“新發(fā)貨”數(shù)組與當(dāng)前庫(kù)存數(shù)組合并。因此,任何相同的物品都會(huì)添加到庫(kù)存中的任何現(xiàn)有物品中。.sort 運(yùn)行,但 flat 似乎不執(zhí)行任何操作。我懷疑存在某種與我如何制作數(shù)組和弄亂索引有關(guān)的問題?function updateInventory(arr1, arr2) {    let invObj = {}    let updateObj = {}    let result = []    arr1.forEach( x => invObj[x[1]] = x[0])    arr2.forEach( x => updateObj[x[1]] = x[0])    for(let key in updateObj) {        if (invObj[key]) {            invObj[key] += updateObj[key]        } else {            invObj[key] = updateObj[key]        }    }    result =  Object.keys(invObj).map(key=>[invObj[key],key])    .sort((a,b)=>{    // attempting to sort inventory alphabetically here as required by my course's test        return a[1] - b[1]    })    return result}var curInv = [    [21, "Bowling Ball"],    [2, "Dirty Sock"],    [1, "Hair Pin"],    [5, "Microphone"]];var newInv = [    [2, "Hair Pin"],    [3, "Half-Eaten Apple"],    [67, "Bowling Ball"],    [7, "Toothpaste"]];console.log(updateInventory(curInv, newInv));
查看完整描述

4 回答

?
侃侃無極

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

在對(duì)字符串值進(jìn)行排序時(shí),應(yīng)使用該方法。localeCompare


function updateInventory (arr1, arr2) {

  let invObj = {};

  let updateObj = {};

  let result = [];


  arr1.forEach(x => invObj[x[1]] = x[0]);

  arr2.forEach(x => updateObj[x[1]] = x[0]);


  for (let key in updateObj) {

    if (invObj[key]) {

      invObj[key] += updateObj[key];

    } else {

      invObj[key] = updateObj[key];

    }

  }


  result = Object.keys(invObj)

    .sort((a, b) => a.localeCompare(b))

    .map(key => [invObj[key], key]);


  return result;

}


var curInv = [

  [21, 'Bowling Ball'],

  [2, 'Dirty Sock'],

  [1, 'Hair Pin'],

  [5, 'Microphone']

];


var newInv = [

  [2, 'Hair Pin'],

  [3, 'Half-Eaten Apple'],

  [67, 'Bowling Ball'],

  [7, 'Toothpaste']

];


console.log(

  updateInventory(curInv, newInv)

);


查看完整回答
反對(duì) 回復(fù) 2022-08-18
?
翻過高山走不出你

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

您是否希望數(shù)組與第一個(gè)實(shí)例中的數(shù)據(jù)格式相同?


function updateInventory(arr1, arr2) {

    let invObj = {}

    let updateObj = {}

    let result = []


    arr1.forEach( x => invObj[x[1]] = x[0])

    arr2.forEach( x => updateObj[x[1]] = x[0])


    for(let key in updateObj) {

        if (invObj[key]) {

            invObj[key] += updateObj[key]

        } else {

            invObj[key] = updateObj[key]

        }

    }

    

    return invObj;

}

var curInv = [

    [21, "Bowling Ball"],

    [2, "Dirty Sock"],

    [1, "Hair Pin"],

    [5, "Microphone"]

];


var newInv = [

    [2, "Hair Pin"],

    [3, "Half-Eaten Apple"],

    [67, "Bowling Ball"],

    [7, "Toothpaste"]

];


console.log(updateInventory(curInv, newInv));


查看完整回答
反對(duì) 回復(fù) 2022-08-18
?
jeck貓

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

我會(huì)創(chuàng)建一個(gè)查找對(duì)象并保留對(duì)數(shù)組項(xiàng)的引用。在循環(huán)訪問當(dāng)前項(xiàng)目后,我將循環(huán)訪問新項(xiàng)目。檢查它是否存在并更新計(jì)數(shù)。如果不存在,則將物料添加到庫(kù)存中。


var curInv = [

    [21, "Bowling Ball"],

    [2, "Dirty Sock"],

    [1, "Hair Pin"],

    [5, "Microphone"]

];


var newInv = [

    [2, "Hair Pin"],

    [3, "Half-Eaten Apple"],

    [67, "Bowling Ball"],

    [7, "Toothpaste"]

];


// make a look up object to reference by the key

var lookup = curInv.reduce( (obj, item) => ({ ...obj, [item[1]]: item }), {})


// loop over the new inventory and add it on

newInv.forEach((item) => {

  // check to see if we have the item

  var key = item[1]

  var exisiting = lookup[key]

  // if exists add it

  if (exisiting) {

    exisiting[0] += item[0]

  } else {

    // new item

    // add to our look up table in case it repeats

    lookup[key] = item

    // add it to the inventory list

    curInv.push(item)

  }

})


console.log(curInv)


查看完整回答
反對(duì) 回復(fù) 2022-08-18
?
白衣染霜花

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

對(duì)字符串進(jìn)行排序時(shí),它有點(diǎn)復(fù)雜,因?yàn)槟€必須考慮大小寫。這是我在js中制作的表格中的一個(gè)片段,希望它有所幫助。您也可以像 taplar 所說的那樣使用 localecompare。


            .sort(

                function(a,b) {

                    a = a[1];

                    b = b[1];

                    if (a < b) {

                        return -1; 

                    } else if (a > b) {

                        return 1;

                    } else {

                        return 0; // Equal

                    }

                });


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

添加回答

舉報(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)