gpt4 book ai didi

javascript - 如果使用 Lodash 在对象中找不到属性,如何将对象值设置为 `null` 或 `undefined`

转载 作者:太空宇宙 更新时间:2023-11-04 03:05:15 27 4
gpt4 key购买 nike

嗨,我有一个这样的对象,如果对象中不存在,我想将属性值返回为 undefinednull 。这是我的对象。

var build= { 'ts1': 1, 'ts2': '2', 'ts3': 3 };

我正在使用_.pick函数来选择值,它只选择对象中存在的值。 这是我的代码:

_.pick(build, [ 'ts0' 'ts1', 'ts2','ts5','ts6','ts7']);

我得到的结果是这样的:

 { 'ts1': 1, 'ts2': '2'}

预期输出是:

{ 'ts0':null, 'ts1': 1, 'ts2': '2','ts5':null,'ts6':null,'ts7':null}

请有人能帮我解决这个问题。

最佳答案

_.pick 旨在为您提供对象属性的子集。它不会将原始对象中从未存在过的属性分配给 null

但是,您提到:

I want to return the property values as undefined or null if not present in the object

幸运的是,对于目标对象上不存在该属性的所有属性访问,JavaScript 已经默认执行此操作(返回 undefined)。因此,您可以简单地使用已有的代码并使用常规括号属性访问表示法将属性值默认为 undefined:

var build = {
'ts1': 1,
'ts2': '2',
'ts3': 3
}

var result = _.pick(build, [
'ts0', 'ts1', 'ts2', 'ts5', 'ts6', 'ts7'
])

console.log(result['ts0']) //=> undefined
console.log(result['ts1']) //=> 1
<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

编辑:如果您确实需要对象上存在这些属性并且默认为null,则可以使用以下方法:

var build = {
'ts1': 1,
'ts2': '2',
'ts3': 3
}

var result = _.reduce([
'ts0', 'ts1', 'ts2', 'ts5', 'ts6', 'ts7'
], function (o, e) {
o[e] = e in build ? build[e] : null
return o
}, {})

console.log(result['ts0']) //=> undefined
console.log(result['ts1']) //=> 1
<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

关于javascript - 如果使用 Lodash 在对象中找不到属性,如何将对象值设置为 `null` 或 `undefined`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42638852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com