這里是代碼:
。 let bucket = [[],[],[],[],[],[],[],[] 。
bucket = {...Object.keys(bucket)
.sort((a,b) => b-a)
.filter(key => key > 0)
.map(key => '-' key) 。
...桶}。
console.log(bucket);
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
問題:第一行代碼沒有將原bucket物件的負鍵添加到物件中,所有屬性(鍵)的對應值為空陣列。
在這行代碼被評估后,Bucket只顯示其原來的屬性和值
我如何才能讓這一方法發揮作用?uj5u.com熱心網友回復:
Array.map()創建了一個帶有你的負數鍵的字串陣列,當你傳播bucket陣列時,它們被覆寫了。取而代之的是創建成對的[new key, []]用Object.fromEntries()轉換為一個物件,然后將它們展開:
const bucket = [[],[],[],[],[],[],[],[] 。
const result = {
...Object.fromEntries(
Object.keys(bucket)
.filter(key=>key > 0)
.sort((a, b) =>/span> b-a)
.map(key => [-key, [] ] )
),
...桶}。
console.log(result);
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/329118.html
標籤:
下一篇:將一個陣列項推送給一個物件。腳本
