簡體   English   中英

返回從最終 object 推入對象數組的鍵

[英]Return key from final object pushed into an array of objects

試圖從推入數組的 object 返回最后一個鍵

var remove = function(s, k) {
   let stack = [];
   let newObj = {}; 
   for(const char of s){
    let letter = stack[stack.length-1]
    console.log(`stack: ${stack[stack.length-1][0]}`)
    if(char !== letter){
        newObj[char] = newObj[char] ? newObj[char]+1 : 1
[Object.values(newObj).length-1])
        stack.push({newObj})
    } 
    else if(char === letter && Object.values(newObj)[Object.values(newObj).length-1]){
        stack.pop()
    }
    }
}

如果我通過

const s = "deeedbbcccbdaa"; 
const k = 3;

我希望我的 console.logs 重新調整我推入數組的最后一個字母。 然而,這是我目前看到的:

TypeError: Cannot read properties of undefined (reading '0')

我們不能使用unshift

let text = "deeedbbcccbdaa";
const myArray = text.split("");

console.log(myArray[myArray.unshift()-1])

試試看

您收到此錯誤是因為在進入for循環之前,您將stack分配給一個空數組( let stack = [] )。

這意味着在您的for循環的第一次迭代中,您試圖訪問console.log語句中堆棧的最后一個元素,即使它還不存在。

換句話說,你的for循環第一次運行時, stack[stack.length-1]是未定義的。 所以錯誤來自試圖訪問這個值的索引 0。

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM