Skip to content

List

zipWith()

将两个列表对位处理后构成新的列表。

  • Type
  • Details

第一个参数传入一个二元函数 ,接下来传入两个等长的列表(记为 )。

返回一个长度与传入的列表相同的结果列表 ,满足

  • Example
js
const f = (a, b) => a + b;
zipWith(f, [1, 2, 3], [4, 5, 6]); //[5, 7, 9]
const f = (a, b) => a + b;
zipWith(f, [1, 2, 3], [4, 5, 6]); //[5, 7, 9]

zip()

将两个列表对位组合后生成新的列表。

  • Type
  • Details

传入两个长度相等的列表(记为 )。

返回一个长度与传入列表相同的结果列表 ,满足

该函数与 zipWith((a,b)=>[a,b]) 等价。

  • Example
js
zip([1, 2, 3], [4, 5, 6]); //[[1, 4], [2, 5], [3, 6]]
zip([1, 2, 3], [4, 5, 6]); //[[1, 4], [2, 5], [3, 6]]

join()

将列表中全部元素通过分隔符连接成一个字符串。

  • Type
  • Details

第一个参数传入一个字符串代表分隔符,第二个参数传入一个列表,返回值为最终连接的字符串。

  • Example
js
join('|', [1, 2, 3]); //"1|2|3"
join('|')([1, 2, 3]); //"1|2|3"
join('|', [1, 2, 3]); //"1|2|3"
join('|')([1, 2, 3]); //"1|2|3"

slice()

截取列表的一部分区间。

  • Type
  • Details

前两个参数传入两个整数代表开始截取的位置和结束截取的位置,返回值为截取到的区间。

  • Example
js
slice(0, 3, [1, 2, 3, 4]); //[1, 2, 3]
slice(0, 3, [1, 2, 3, 4]); //[1, 2, 3]

take()

从列表头开始截取元素。

  • Type
  • Details

第一个参数传入一个整数 ,接下来传入一个列表,返回值为该列表的前 个元素。

  • Example
js
take(3, [1, 2, 3, 4]); //[1, 2, 3]]
take(3, [1, 2, 3, 4]); //[1, 2, 3]]

takeWhile()

从列表头开始按规则截取元素。

  • Type
  • Details

第一个参数传入一个函数 ,第二个参数传入一个列表。

接下来从头开始截取元素加入结果列表,若某元素作为 的参数的函数值不为 true,则停止截取。

返回值为按规则截取的新列表。

  • Example
js
takeWhile((v) => v < 3, [1, 1, 4, 5, 1, 4]); //[1, 1]
takeWhile((v) => v < 3, [1, 1, 4, 5, 1, 4]); //[1, 1]

drop()

从列表头开始删除元素。

  • Type
  • Details

注意:该函数不会改变参数。

第一个参数传入一个整数 ,接下来传入一个列表,返回值为该列表去除前 个元素后的结果。

  • Example
js
drop(3, [1, 2, 3, 4]); //[4]
drop(3, [1, 2, 3, 4]); //[4]

dropWhile()

从列表头开始按规则删除元素。

  • Type
  • Details

注意:该函数不会改变参数。

第一个参数传入一个函数 ,第二个参数传入一个列表。

接下来从头开始删除列表中的元素,若某元素作为 的参数的函数值不为 true,则停止删除。

返回值为按规则删除元素后的新列表。

  • Example
js
dropWhile((v) => v < 3, [4, 5, 1, 4]); //[4, 5, 1, 4]
dropWhile((v) => v < 3, [4, 5, 1, 4]); //[4, 5, 1, 4]

every()

检查一个列表,其必须完全满足需求。

  • Type
  • Details

第一个参数传入一个判断函数,第二个参数传入一个列表。

如果列表中的所有元素都满足:作为判断函数的参数时函数值为 true,则返回 true,否则返回 fasle

  • Example
js
every((v) => v < 3, [1, 1, 4, 5, 1, 4]); //false
every((v) => v < 3, [1, 1, 4, 5, 1, 4]); //false

some()

检查一个列表,其有任意一个元素满足需求即可。

  • Type
  • Details

第一个参数传入一个判断函数,第二个参数传入一个列表。

如果列表中的任意一个元素满足:作为判断函数的参数时函数值为 true,则返回 true,否则返回 fasle

  • Example
js
some((v) => v < 3, [1, 1, 4, 5, 1, 4]); //true
some((v) => v < 3, [1, 1, 4, 5, 1, 4]); //true

concat()

拼接两个列表(可为字符串)。

  • Type
  • Details

传入两个列表,返回其拼接后的结果。

  • Example
js
concat([3, 2, 1], [1, 2, 3]); //[3, 2, 1, 1, 2, 3]
concat([3, 2, 1], [1, 2, 3]); //[3, 2, 1, 1, 2, 3]

concatr()

反向拼接两个列表(可为字符串)。

  • Type
  • Details

传入两个列表,返回其反向拼接后的结果。

  • Example
js
concat([3, 2, 1], [1, 2, 3]); //[1, 2, 3, 3, 2, 1]
concat([3, 2, 1], [1, 2, 3]); //[1, 2, 3, 3, 2, 1]

取出列表的首项。

  • Type
  • Details

传入一个列表,返回其首项。

  • Example
js
head([1, 2, 3]); //1
head([1, 2, 3]); //1

tail()

取出列表的尾项。

  • Type
  • Details

传入一个列表,返回其尾项。

  • Example
js
tail([1, 2, 3]); //3
tail([1, 2, 3]); //3

dropHead()

返回列表删除首项后的结果。

  • Type
  • Details

传入一个列表,返回列表删除首项后的结果。

  • Example
js
dropHead([1, 2, 3]); //[2, 3]
dropHead([1, 2, 3]); //[2, 3]

dropTail()

返回列表删除尾项后的结果。

  • Type
  • Details

传入一个列表,返回列表删除尾项后的结果。

  • Example
js
dropTail([1, 2, 3]); //[1, 2]
dropTail([1, 2, 3]); //[1, 2]

includes()

判断某值是否在列表中。

  • Type
  • Details

传入一个需要检验的值,再传入一个列表,返回的结果为该值是否在列表中。

  • Example
js
includes(4)([1, 3, 4]); //true
includes(5)([1, 3, 4]); //false
includes(4)([1, 3, 4]); //true
includes(5)([1, 3, 4]); //false

reverse()

翻转列表。

  • Type
  • Details

传入一个列表,返回其翻转后的结果。

  • Example
js
reverse([1, 2, 3]); //[3, 2, 1]
reverse([1, 2, 3]); //[3, 2, 1]

countWith()

  • Type
  • Details

传入一个规则,再传入一个列表,按规则统计其中符合规则的元素数。

  • Example
js
countWith(equal(5), [1, 2, 3, 4, 5, 5, 5]); //3
countWith(equal(5), [1, 2, 3, 4, 5, 5, 5]); //3

count()

  • Type
  • Details

传入一个值,再传入一个列表,查找列表中该值出现的次数。

  • Example
js
count([1, 2, 3, 4, 5, 5, 5]); //3
count([1, 2, 3, 4, 5, 5, 5]); //3

pairList()

  • Type
  • Details

传入一个列表,返回其首项与首项后的元素构成的列表。

  • Example
js
const [x, xs] = pairList([1, 2, 3, 4, 5]); // x=1, xs=[2, 3, 4, 5]
const [x, xs] = pairList([1, 2, 3, 4, 5]); // x=1, xs=[2, 3, 4, 5]

PureEval released under the GPL-3.0 License.