我想从 myObj 中的年份中删除“hello5”。
我使用了“pop”原型(prototype),但浏览器控制台返回了这个结果:
“未捕获的类型错误:无法读取未定义的属性‘类型’”
以下是我的问题的示例。您可以尝试并从控制台看到错误消息。
我尝试了很长时间但没有找到任何解决方案,我需要您的建议和解决方案。
代码:
var myObj = {
test : 'testObje',
langs : {
0 : 'EN',
1 : 'GR',
2 : 'RU',
3 : 'TR'
},
comment : 'testComment'
};
var years = [];
for (i= 0; i<=10; i++)
{
years.push({
operator : i,
type : 'hello' + i
});
};
myObj.years = years;
var myObjLeng = myObj.years.length;
for(var i = 0; i < myObjLeng; i++) {
if(myObj.years[i].type == 'hello5') {
myObj.years.pop();
}
}
最佳答案
这个怎么样?
myObj.years = myObj.years.filter(year => year.type != "hello5")
简而言之,您使用 myObj.years
数组在 filiter 回调中过滤其名为 year
的每个元素。过滤器会将满足条件的这些元素通过。除了带有 type
和你的 "hello5"
表达式的以外,所有的都会满足。最后,您将结果替换回来,您就完成了。
关于javascript - 具体的对象是如何从对象内部的数组中移除的? (使用 pop() 或其他解决方案),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57116897/