繁体   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