![](/img/trans.png)
[英]Merge two arrays of objects but have the second array pushed into an object key
[英]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')
您收到此錯誤是因為在進入for
循環之前,您將stack
分配給一個空數組( let stack = []
)。
這意味着在您的for
循環的第一次迭代中,您試圖訪問console.log
語句中堆棧的最后一個元素,即使它還不存在。
換句話說,你的for
循環第一次運行時, stack[stack.length-1]
是未定義的。 所以錯誤來自試圖訪問這個值的索引 0。
希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.