![](/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.