javascript - Javascript删除循环内的对象文字项
问题描述
嘿,我正在尝试删除我的对象中的一些项目:
if (e = j[a].apply(j, g), e !== c && e !== j)
$.each(j.data[0], function (key, value) {
console.log(key, value);
j.data.splice(1, 1);
});
return h = e, !1
但是,这似乎并没有删除项目环境正弦#1和bomDescription是#0。
我也试过:
j[0].pop()
j.data[0].pop()
j.data[0].splice(1, 1)
以上哪一项不工作或导致错误。
我做错了什么?
解决方案
如果您的对象看起来像这样(从该图像中看起来)。
const j = {
data: {
bomDescription: "hjtyj",
environment: 2,
...
}
}
然后要删除该environment
属性,您可以使用delete
这样的语句。
const j = {
data: {
bomDescription: "hjtyj",
environment: 2
}
}
console.log(j.data);
delete j.data.environment;
console.log(j.data);
编辑
要根据其值删除属性,您可以执行此操作。
const j = {
data: {
bomDescription: "hjtyj",
environment: 2
}
}
const removePropertyByValue = (obj, value) => {
for (const prop in obj) {
if (obj.hasOwnProperty(prop) && obj[prop] === value) {
delete obj[prop];
}
}
}
console.log(j.data);
removePropertyByValue(j.data, 2);
console.log(j.data);
编辑二
如果 data 属性是一个对象数组,那么您可以这样做。
const j = {
data: [{
bomDescription: "hjtyj",
environment: 2
}]
}
const removePropertyByValue = (obj, value) => {
for (const prop in obj) {
if (obj.hasOwnProperty(prop) && obj[prop] === value) {
delete obj[prop];
}
}
}
console.log(j.data[0]);
removePropertyByValue(j.data[0], 2);
console.log(j.data[0]);
推荐阅读
- python - 如何将复选框与文件打开对话框链接并显示使用 python tkinter 在 GUI 中打开的文件的详细信息?
- php - PHP curl登录一次然后使用multi_curl抓取网站
- r - 无法使用具有 NA 值的 ggplot 进行可视化
- php - MySQL 全词匹配 - 多个词
- apache - 端口仅对 1 个域开放(vHost Apache2)
- node.js - 如何使用 mongoose、nodejs 从 Mongodb 获取数据
- rxjs - RxJS - 重用已完成的 observable
- flutter - Flutter 扩展 Container 以填充 Row 的剩余空间
- ios - 如何更快地检测到对等方的断开连接?
- php - 获取搜索日期的问题和输入的日期不正确,dump() 在 POSTMAN 中显示