酷口
(酷口家数字花园)
1
如下的代码:dv.pages (‘“9文献笔记/fn”’).where (b=> b.编码>0).length 想统计编码不为空的内容,先用函数:
dv.pages (‘“9文献笔记/fn”’).where (b=> b.编码.length()>0).length 报错,不知道,大神能否帮忙给我一个案例
var i = [dv.pages(`"9文献笔记/fn"`).length,dv.pages ('"9文献笔记/fn"').where (b=> b.编码>0).length]
dv.paragraph(`闪念笔记: **${i[0]}** 个`)
dv.paragraph(`已编码: **${i[1]}** 本`)
var i = [dv.pages(`"9文献笔记/fn"`).length,dv.pages ('"9文献笔记/fn"').filter(b=> b.编码!=null).length]
dv.paragraph(`闪念笔记: **${i[0]}** 个`)
dv.paragraph(`已编码: **${i[1]}** 本`)
这样应该可以
可以,前提是确保笔记有编码这个属性,由于filter或这个where要对所有元素都调用,比如说你之前写的 b.编码.length>0,如果有的b.编码不存在,那自然也没有length属性,就报错了
我用错了,我本来想用 b.编码!==null
的,本来想的复杂一点的,这个就和 b.编码
不一样了,它会过滤出 yaml 区有编码这个属性,但是是空着的笔记,就像这样
---
编码:
---
主要是我自己有一些模板生成的笔记,有些属性是空着后面慢慢补的,要找出它们(没有这个占位的就不找)。就先入为主的以为别人也要这么用来着。
酷口
(酷口家数字花园)
9
编码我是用在文章中中使用::赋值的
有一些笔记是没有编码的。是因为这个才报错的么
var i = [dv.pages(`"9文献笔记/fn"`).length,dv.pages ('"9文献笔记/fn"').filter(b=> b.编码.length>0).length]
dv.paragraph(`闪念笔记: **${i[0]}** 个`)
dv.paragraph(`已编码笔记: **${i[1]}** `)
你要用 === 喔,提醒一下:null==undefined
是 true,null===undefined
是false
是啊,就是这个原因,要先存在编码,才能编码.length,也可以 b=> b.编码 && b.编码.length>0
酷口
(酷口家数字花园)
13
搞定,b.编码 && b.编码.length>0的 496是正确的
var i = [dv.pages(`"9文献笔记/fn"`).length,dv.pages ('"9文献笔记/fn"').filter(b=> b.编码!=null).length,dv.pages ('"9文献笔记/fn"').filter(b=> b.编码 && b.编码.length>0).length]
dv.paragraph(`闪念笔记: **${i[0]}** 个`)
dv.paragraph(`已编码笔记: **${i[1]}** `)
dv.paragraph(`已编码笔记: **${i[2]}** `)
两个等号比较会产生隐式转换,比如 true==1
中,true 会转换成 1,然后 1==1
输出 true;如果是 true===1
,就是 false
酷口
(酷口家数字花园)
18
b.编码 && b.编码.length>0,
编码::
后面是空格还是null呢? 如果没有空格,
length没有大于>0,不会计算的
可能我表述不清楚。两个笔记,一个有 编码:: 12
,不为空;一个仅有 编码::
,为空。第三个统计是的编码不为空的情况,应该有 1 个笔记,即 编码:: 12
的笔记,而不是 0 个。
酷口
(酷口家数字花园)
24
我把定义重新定义了一下:
var i = [dv.pages(`"9文献笔记/fn"`).length,dv.pages ('"9文献笔记/fn"').filter(b=> b.编码!=null).length,dv.pages ('"9文献笔记/fn"').filter(b=> b.编码 && b.编码.length>0).length]
dv.paragraph(`闪念笔记: **${i[0]}** 个`)
dv.paragraph(`有编码笔记(包含有编码为空的笔记): **${i[1]}** `)
dv.paragraph(`已编码笔记(仅包括不为空的笔记): **${i[2]}** `)
那么我猜测你是不是 YAML 区和正文都有“编码”这个属性。你看,只要有两个“编码::”,哪怕都为空也会被统计到。
有一说一,应该避免重复属性的出现,但是它确实.length>0
主要是一般如果没有重复定义属性的话,用 dv.pages(`"9文献笔记/fn"`).filter(b=> b.编码).length
应该已经得到正确结果了,但楼主要用 b=> b.编码 && b.编码.length>0
才能得到正确结果,我觉得需要再问问。
酷口
(酷口家数字花园)
28
前面说了原因, 单独使用:b.编码.length>0会报错,有一部分笔记没有编码