gpt4 book ai didi

仅当值不为空时才推送 Javascript 数组

转载 作者:数据小太阳 更新时间:2023-10-29 04:01:23 25 4
gpt4 key购买 nike

我想知道以下内容是否以及如何运作:

我有一个如下定义的数组:

var array = [
{number: '1', value: 'one', context: 'someContext'},
{number: '2', value: 'two', context: 'anotherContext'},
...
]

我目前正在做的是将元素插入数组,所以 array.push({number: '1', value: 'one', context: 'someContext'});等等,每个数组元素。

现在这个东西被扩展了:假设有另一个键叫做'content'。此键有一个适当的值,即未定义或字符串。现在的问题是:如果我将推送放入这样的函数中:

push(number, value, context, content) {
array.push({
number: number,
value: value,
context: context,
content: content
})
}

无论如何,我可以确定,如果内容(函数作为参数获取)不为空,则仅将关键内容添加到元素中。

当然我可以这样修改函数:

push(number, value, context, content) {
if(!content) {
array.push({
number: number,
value: value,
context: context,
content: content
})
} else {
array.push({
number: number,
value: value,
context: context
})
}
}

但问题是,在推送功能中是否有办法做到这一点。我也想过类似的事情

array.push({
number: number,
value: value,
context: context,
content? content: content
})

所以只有在定义了内容时才会插入它,但是这行得通吗,好像行不通,但也许我的代码中有错误。

最佳答案

如果目标不只是让代码更短,那么最可读的应该是这样的,您在其中创建对象,如果有值则添加属性,然后将对象推送到数组。

push(number, value, context, content) {

var o = {
number : number,
value : value,
context : context
}

if (content !== null) o.content = content;

array.push(o);
);

这是一种直接在 Array.push 中构造对象的 ES6 方法,并过滤任何具有 null 值的对象。

function push(...arg) {
array.push(['number','value','context','content'].reduce((a,b,i)=> {
if (arg[i] !== null) a[b]=arg[i]; return a;
}, {}))
}

关于仅当值不为空时才推送 Javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38837341/

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