javascript - 如何保留对象的某些属性?

标签 javascript arrays object ecmascript-6 lodash

我有这个对象。如果某个属性的值为 null,我将删除该属性。但我有一些特殊属性,我想无论如何(即使它们的值为空)。到目前为止,我的代码运行良好,但我不喜欢必须反复使用 OR || 运算符这一事实。 示例:

key === 'alwaysCountWithMe' || key === 'ABC' || key ==='doNotDeleteMe' || key === 'specialProperty'

这是我的代码:

var object = {
  "firstname": null,
  "lastname": "White",
  "ABC": null,
  "hobby": null,
  "c": 3,
  "alwaysCountWithMe": null,
  "doNotDeleteMe": null,
  "specialProperty": null,
};

console.log(_.pickBy(object, (value, key) => !!value || key === 'alwaysCountWithMe' || key === 'ABC' || key === 'doNotDeleteMe' || key === 'specialProperty'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

是否有一种更简洁的方法可以做到这一点,而不必一遍又一遍地使用 ||

最佳答案

使用key数组一直保留,检查是否includes(key):

var object = {
  "firstname": null,
  "lastname": "White",
  "ABC": null,
  "hobby": null,
  "c": 3,
  "alwaysCountWithMe": null,
  "doNotDeleteMe": null,
  "specialProperty": null,
};
const alwaysKeep = ['alwaysCountWithMe', 'ABC', 'doNotDeleteMe', 'specialProperty'];

console.log(_.pickBy(object, (value, key) => !!value || alwaysKeep.includes(key)));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

关于javascript - 如何保留对象的某些属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54612845/

相关文章:

javascript - 如何让轮播在 drupal 站点上工作

python - 如何多次循环访问相同的列表?

javascript - 对象数组 : accessing an object's value without iterating through the array

java - 在另一个类中编译时无法识别一个类的对象

javascript - 如何使用 Dropzone.js 上传单个图像?

javascript - 在/之后仅分割第一部分

javascript - event.current目标问题

java.lang.String 类型的 Android Value ... 无法转换为 JSONArray

php - array_push 在函数中不起作用,PHP

java - 找不到在对象类中定义的符号(方法)