我有问题我想得到模型的长度,但总是等于2.
如果我显示modelFriend.lenght
我有这个:[Thu Jul 06 2017 00:00:00 GMT+0200,null]
和null
被视为一个值,因此length
等于2.
如果我选择一个日期,如何计算modelFriend.lenght = 1
的实际尺码,如果我选择2个日期,怎么算modelFriend.lenght = 2
这是我的代码:
public selectDate = (date) => {
if (this.mode === 'period') {
const dates = this._modelFriend ? [this._modelFriend[0], this._modelFriend[1]] : [null, null]
if (!dates[0] || dates[1]) {
dates[0] = date
dates[1] = null
} else {
dates[1] = date
}
this._modelFriend = dates
if (this._modelFriend.length === 2 ) {
this.model = dates
}
答案 0 :(得分:1)
您可以使用下面的函数(使用filter
)来计算数组中的非null元素:
function countNonEmpty(array) {
return array.filter(Boolean).length;
}
var array = [new Date(), null];
console.log(countNonEmpty(array));

答案 1 :(得分:0)
我假设在你的情况下数组的长度总是为2。这就是为什么我只是检查是否this._modelFriend[0]!=null && this._modelFriend[1]!=null
,而不是进行过滤并检查新过滤数组的长度。如果表达式的计算结果为true
,则表示您有2个日期。
其他一切都很复杂,难以阅读和开销。