跳至主要內容

LincZero小于 1 分钟

(ES5/ES6)

A?B:C

循环

JavaScript

for循环

for (int i=1; i<=10; i++) statement;			// for


forEach

array.forEach(function(element){/**/});			// foreach,回调匿名函数
array.forEach((element) => {/**/});				// foreach,回调箭头函数

高级循环(filter、map、reduce)

var array = [1,2,3]
array.filter((e) => {e=>e>2})					// filter	[3]		返回布尔,可简写return
array.map((e,i) => {return e*e})				// map		[1,4,9]	映射
array.reduce((pre,next) => {return pre+next})	// reduce	6		将返回值重新赋值给pre

一些写过的高级循环

Obsidian插件dataviewjs的一个

// ```dataviewjs
let pages = dv.pages("#book");

dv.table(['File', 'Tag', 'alias', '从属于'], pages
	 .filter(b => {
		 // return "#并夕夕" == (b.从属于[1]) // 筛选以ck结尾的tag
		 return b.从属于.contains("#并夕夕")
	 })
	 .map(b => 
		 [b.file.link, b.tag, b.alias, b.从属于]
	 )
)

JavaScript Query