javascript - 从参数开始删除对象的属性
问题描述
我想要一些建议来返回使用 lodash 删除其他对象的对象的属性。例子 :
deletePropsThatStarsWith({a:1, b:2, aa:3}, 'a') //ouputs {b:2}
到目前为止,这是可行的,但我不知道我需要去哪里。
var obj = { a: 1, b: 2, aa: 3 }
function deletePropsThatStartsWith(object, prop) {
return _.omit(object, prop)
}
console.log(deletePropsThatStartsWith(obj, 'a'))
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.10/lodash.min.js"></script>
感谢您的帮助/建议。
解决方案
您正在寻找 lodash_.omitBy
方法。您可以为第二个参数传递一个回调,该参数决定要省略哪些属性。回调将使用两个参数调用,value
并且key
.
因此,对于您的示例,您只需要检查密钥,看看它是否以所需的字符串开头。该.startsWith
方法将是一个不错的选择,或者如果您不能使用它,lodash 本身提供了一个_.startsWith
方法。
例子:
var obj = {a: 1, b: 2, aa: 3}
function deletePropsThatStartsWith(object, prop) {
return _.omitBy(object, (v, k) => k.startsWith(prop))
}
console.log(deletePropsThatStartsWith(obj, 'a'))
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.10/lodash.min.js"></script>
推荐阅读
- python - 解决问题的不同方法的复杂性
- javascript - 如何禁用选择器(Bootstrap-Select)的实际“下拉”?
- swift - iOS13 UIAlertController 具有自定义视图和首选样式作为操作表灰度所有颜色
- python - 寻找工资帽的空间复杂度
- python - 如何在不删除瓷砖的情况下在 folium 地图上创建单选按钮?
- javascript - 从特定 DOM 部分搜索数据
- makefile - 在多个目录上并行执行
- python-3.x - 如何序列化列表中的转义字符串
- leaflet - Leaflet中的Zoomlevel 19 =灰色瓷砖
- c - jpg 的不正确,混合了多个图像。谁能告诉我怎么了?“恢复”