javascript - 从对象数组中删除所有具有相同名称的键

标签 javascript

我有一个 Javascript 对象数组,我想清除所有键名是 id 的键值对。我该怎么做?

示例输入:

var s = [{
  items:[{
    id: 1,
    items:[{
      items:[{
        id: 2,
        items:[]
      }]
    }]
  }],
  id: 3
}]

示例输出:

var s = [{
  items:[{
    items:[{
      items:[{
        items:[]
      }]
    }]
  }]
}]

最佳答案

你可以像这样使用递归函数:

function removeKey(obj, searchKey) {
  for(objKey in obj) {
    if (objKey === searchKey)
      delete obj[objKey];
    else if (typeof obj[objKey] === 'object')
      removeKey(obj[objKey], searchKey);
  }
}

removeKey(yourObj, 'id')

例子: http://jsfiddle.net/bsnfqkL9/3/

关于javascript - 从对象数组中删除所有具有相同名称的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51731864/

相关文章:

javascript - 在 react-google-maps 上的 DrawingManager 中完成一圈后如何停止绘制?

javascript - JQuery 选项卡 : How to display a 'Loading...' message' on waiting an AJAX HTTP request response?

javascript - chrome 中 Canvas 填充颜色错误

javascript - $(function() {} ); 是什么?做?

javascript - 为什么 MySQL 连接字符串可以在 bash 中工作,但不能在 javascript 中工作?

javascript - json 劫持与 IE>10 或 chrome >30 相关吗?

javascript - 访问 Node 请求的body属性

javascript - 如何在多个 Axios 调用上运行回退?

javascript - 在子行中显示数组项( react 表)

javascript - 如何将 Canvas 转换为图像?