我想知道以下事情是否以及如何运作:
我有一个如下定义的数组:
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
})
因此,只有在定义了内容时才会插入它,但这是否有效,看起来并不像,但也许我的代码中存在错误。
原文由 user5638730 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果目标不仅仅是让代码更短,那么可读性最高的代码应该是这样的,您可以在其中创建对象,如果有值则添加属性,然后将对象推送到数组。
这是一种直接在
Array.push
内部构造对象的 ES6 方法,并过滤任何具有null
作为值的对象。