Lodash 4:如果对象属性包含字符串的特定部分,如何省略它们?
Lodash 4: How to omit Object properties if they contain a certain part of a string?
是否可以使用 Lodash 的 omit
方法并删除可能包含附加到它们的字符串 _old
的键?
例如,这是我的 JSON 对象:
{
"name": "Canada",
"shortName": "CanadaEH",
"shortName_old": "Canada",
"fullName": "The NEW Republic of Canada",
"fullName_old": "The Republic of Canada",
...etc...
}
我已经在我的应用程序中导入了 omit
包,如下所示:
import { omit } from 'lodash'
当我这样做时这有效:
filteredFields() {
return omit(this.myObj, ['name'])
}
我得到了没有那些省略的属性的对象,正如预期的那样。
但是,像这样添加它不起作用:
return omit(this.myObj, ['name', '_old'])
我怎样才能同时省略可能包含 _old
的键?
_.omitBy()
方法接受一个谓词函数,该函数使用 属性 的当前值和键调用。然后您可以检查密钥是否存在该字符串。
const obj = {
"name": "Canada",
"shortName": "CanadaEH",
"shortName_old": "Canada",
"fullName": "The NEW Republic of Canada",
"fullName_old": "The Republic of Canada",
}
const result = _.omitBy(obj, (v, k) => k.endsWith('_old'))
console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
是否可以使用 Lodash 的 omit
方法并删除可能包含附加到它们的字符串 _old
的键?
例如,这是我的 JSON 对象:
{
"name": "Canada",
"shortName": "CanadaEH",
"shortName_old": "Canada",
"fullName": "The NEW Republic of Canada",
"fullName_old": "The Republic of Canada",
...etc...
}
我已经在我的应用程序中导入了 omit
包,如下所示:
import { omit } from 'lodash'
当我这样做时这有效:
filteredFields() {
return omit(this.myObj, ['name'])
}
我得到了没有那些省略的属性的对象,正如预期的那样。
但是,像这样添加它不起作用:
return omit(this.myObj, ['name', '_old'])
我怎样才能同时省略可能包含 _old
的键?
_.omitBy()
方法接受一个谓词函数,该函数使用 属性 的当前值和键调用。然后您可以检查密钥是否存在该字符串。
const obj = {
"name": "Canada",
"shortName": "CanadaEH",
"shortName_old": "Canada",
"fullName": "The NEW Republic of Canada",
"fullName_old": "The Republic of Canada",
}
const result = _.omitBy(obj, (v, k) => k.endsWith('_old'))
console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>