JavaScript:从对象中删除除 1 个键之外的所有键

标签 javascript javascript-objects

<分区>

我有一个对象,我想删除除与特定键匹配的值之外的所有值。例如,我可以这样做:

function remove(obj, key) {
  var value = obj[key]
  var ret = {}
  ret[key] = obj[key]
  obj = ret
}

或者我可以迭代:

for (var k in obj) {
  if (k != key) {
    delete obj[k]
  }
}

但我想知道是否有更好的方法。创建临时变量和遍历整个对象似乎都没有必要。我最初的尝试是:

obj = {
  key: obj[key]
}

但这会导致对象的键为 key

最佳答案

您确实可以在不使用临时变量的情况下实现您所描述的内容。

function remove(obj, key) {
  return Object.assign({}, { [key] : obj[key]});
}

关于JavaScript:从对象中删除除 1 个键之外的所有键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46546088/

相关文章:

javascript - 如何使用 Javascript 函数构造函数在每个框上添加点击警报?

javascript - S3 迭代存储桶/文件夹/文件

php - 在影响引擎中从 JavaScript 运行 php 代码

javascript - 如何将子集合添加到 firebase 中新创建的文档中?

javascript - textarea值更新而不删除之前的Javascript

javascript - 如何在 Javascript 的键中按日期对对象进行排序

javascript - 对象 - 对象中的对象 - 这些对象的数组

javascript - Angular-google-maps:圆形对象点击事件,如何在点击事件上向 Controller 发送信息?

javascript - 元素类型无效 : expected a string (. ..) 但得到:对象

javascript - __proto__ VS。 JavaScript 中的原型(prototype)