• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Array.js: Array.js帮助开发人员更优雅地操作Javascript数组。

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

Array.js

开源软件地址:

https://gitee.com/liuxiangchao/Array.js

开源软件介绍:

Array.js

Array.js帮助开发人员更优雅地操作Javascript数组。

使用

直接引入 Array.jsArray.min.js

<script type="text/javascript" src="Array.min.js?v=0.0.3"></script> 

然后在Javascript中使用:

var arr = [ 1, 2, 3, 4];arr.$each(function (k, v) {	console.log(v);});

其中$each()就是Array.js中定义的方法。

API

  • <boolean> $pad(value, size) - 填充数组 [示例]
  • <boolean> $fill(value, length) - 填充数组到一定长度 [示例]
  • <number> $push(value1, value2, ...) - 在尾部加入一个或多个元素 [示例]
  • <number> $pushAll(array2) - 一次性加入多个元素 [示例]
  • <boolean> $insert(index, obj1, ...) - 在指定位置插入新的元素 [示例]

  • <boolean> $removeValue(v) - 从数组中删除某个值 [示例]
  • <boolean> $remove(index) - 从数组中删除某个位置上的值 [示例]
  • <array> $drop(count) - 删除后几个元素,并返回删除后的元素集合 [示例]
  • <number> $removeIf(fn) - 删除所有满足条件的元素 [示例]
  • <number> $keepIf(fn) - 保留所有满足条件的元素,删除不满足条件的元素 [示例]
  • <boolean> $clear() - 清空数组 [示例]

  • <boolean> $replace(newValues) - 将当前数组的元素替换成新的数组中的元素 [示例]
  • <boolean> $unique(fn) - 去除数组中的相同数据 [示例]
  • <boolean> $set(index, value) - 设置某个索引位置上的值 [示例]
  • <boolean> $sort(compare) - 对该数组进行正排序 [示例]
  • <boolean> $rsort(compare) - 对该数组进行倒排序 [示例]
  • <array> $asort(compare) - 对该数组进行正排序,并返回排序后对应的索引 [示例]
  • <array> $arsort(compare) - 对该数组进行倒排序,并返回排序后对应的索引 [示例]
  • <boolean> $asc(field) - 依据单个字段进行正排序 [示例]
  • <boolean> $desc(field) - 依据单个字段进行倒排序 [示例]
  • <boolean> $swap(index1, index2) - 交换数组的两个索引对应的值 [示例]
  • <boolean> $shuffle() - 打乱数组中元素顺序 [示例]

  • <boolean> $contains(v) / <boolean> $include(v) - 判断数组中是否包含某个值 [示例]
  • <boolean> $each(fn) - 遍历数组 [示例]
  • <mixed> $get(index) - 获取某个索引位置上的值 [示例]
  • <array> $getAll(index1, indexes1, ...) - 获取一组索引对应的值 [示例]
  • <mixed> $first() - 取得第一个元素值 [示例]
  • <mixed> $last() - 取得第一个元素值 [示例]
  • <boolean> $isEmpty() - 判断数组是否为空 [示例]
  • <boolean> $all(fn) - 对容器中元素应用迭代器,并判断是否全部返回真 [示例]
  • <boolean> $any(fn) - 对容器中元素应用迭代器,并判断是否有一次返回真 [示例]
  • <array> $map(fn) / $collect(fn) - 对容器中元素应用迭代器,并将每次执行的结果放入一新数组中 [示例]
  • <mixed> $reduce(fn) - 对容器中元素应用迭代器,并将每次执行的结果放入到下一次迭代的参数中 [示例]
  • <mixed> $find(fn) - 对容器中元素应用迭代器,只要有一次返回值即立即返回由当前元素 [示例]
  • <array> $findAll(fn) / <array> $filter(fn) - 对容器中元素应用迭代器,将所有返回真的元素放入一数组中 [示例]
  • <array> $exist(fn) - 对容器中元素应用迭代器,并判断是否存在返回真的元素 [示例]
  • <array> $reject(fn) - 对容器中元素应用迭代器,将所有返回假的元素放入一数组中 [示例]
  • <array> $grep(pattern) - 找出匹配某正则表达式的元素,并放入一数组中 [示例]
  • <array> $keys(value, strict) / <array> $indexesOf(value, strict) - 取得某一个值在数组中出现的所有的键的集合 [示例]
  • <array> $diff(array2) - 取当前数组与另一数组的差集 [示例]
  • <array> $intersect(array2) - 取当前数组与另一数组的交集 [示例]
  • <mixed> $max(compare) - 取得当前集合中最大的一个值 [示例]
  • <mixed> $min(compare) - 取得当前集合中最小的一个值 [示例]
  • <number> $sum(fn) - 计算数组中的所有元素的总和 [示例]
  • <number> $product(fn) - 计算数组中的所有元素的乘积 [示例]
  • <array> $rand(size) - 随机截取数组片段 [示例]
  • <number> $size(fn) / <number> $count(fn) - 计算元素数量 [示例]
  • <array> $chunk(size = 1) - 返回数组分成新多个片段的结果 [示例]
  • <array> $combine(array1, ...) - 取得当前数组和其他数组组合之后的结果 [示例]
  • <boolean> $equal(array2) - 判断两个数组是否以同样的顺序包含同样的元素 [示例]
  • <boolean> $loop(fn) - 循环使用当前数组的元素来调用某个函数 [示例]
  • <json> $asJSON(field) - 取得当前数组转换为JSON格式的字符串 [示例]

辅助

  • <array> $copy() - 拷贝数组 [示例]
  • <array> Array.$range(start, end, step) - 从一个限定的范围数字或字符生成一个数组 [示例]
  • <boolean> Array.$isArray(obj) - 判断一个对象是否为数组 [示例]

迭代器

在参数中使用fn表示迭代器,每个迭代器接收两个参数:k(索引)、v(元素值),并且this指向数组本身:

var has = [1, 2, 3, 4].$any(function (k, v) {	return v > 10;});

排序迭代器

$sort$rsort$min$max等需要排序的API中,参数中的compare表示迭代器,每个迭代器接收两个参数:v1(第一个值)、v2(第二个值),this指向数组本身:

var arr = [3, 2, 4, 1];arr.$sort(function (v1, v2) {	if (v1 > v2) {		return 1	}	if (v1 == v2) {		return 0;	}	return -1;});//现在 arr = [1, 2, 3, 4]

文档

$pad

  • <boolean> $pad(value, size) - 用value填充数组,默认size为1

示例代码1:

var arr = [1, 2, 3];arr.$pad("a"); // arr => [1, 2, 3, "a"]

示例代码2:

var arr = [1, 2, 3];arr.$pad("a", 5); // arr => [1, 2, 3, "a", "a", "a", "a", "a"]

$fill

  • <boolean> $fill(value, length) - 填充数组到一定长度

示例代码1:

var arr = [1, 2, 3];arr.$fill("a", 5); // arr => [1, 2, 3, "a", "a"]

$push

  • <number> $push(value1, value2, ...) - 在尾部加入一个或多个元素

示例代码1:

var arr = [1, 2, 3];arr.$push(4); // arr => [1, 2, 3, 4]arr.$push(5, 6, 7, 8); // arr => [1, 2, 3, 4, 5, 6, 7, 8]

$pushAll

  • <number> $pushAll(array2) - 一次性加入多个元素

示例代码1:

var arr = [1, 2, 3];arr.$pushAll([4, 5, 6]); // arr => [1, 2, 3, 4, 5, 6]

$insert

  • <boolean> $insert(index, obj1, ...) - 在指定位置插入新的元素,index参数支持负值

示例代码1:

var arr = [1, 2, 3];arr.$insert(0, "a", "b", "c"); // arr => ["a", "b", "c", 1, 2, 3]

示例代码2:

var arr = [1, 2, 3, 4, 5];arr.$insert(2, "a", "b", "c"); // arr => [1, 2, "a", "b", "c", 3, 4, 5]

示例代码3:

var arr = [1, 2, 3, 4, 5];arr.$insert(-2, "a", "b", "c"); // => [1, 2, 3, 4, "a", "b", "c", 5]

$removeValue

  • <boolean> $removeValue(v) - 从数组中删除某个值

示例代码1:

var arr = [1, 2, 2, 3, 3, 3];arr.$removeValue(2); // arr => [1, 3, 3, 3]

$remove

  • <boolean> $remove(index) - 从数组中删除某个位置上的值,index支持负值

示例代码1:

var arr = [1, 2, 3, 4, 5];arr.$remove(2); // arr => [1, 2, 4, 5]

示例代码2:

var arr = [1, 2, 3, 4, 5];arr.$remove(-2); // arr => [1, 2, 3, 5]

$drop

  • <array> $drop(count) - 删除后几个元素,并返回删除后的元素集合

示例代码1:

var arr = [1, 2, 3, 4, 5];arr.$drop(1); // arr => [1, 2, 3, 4]arr.$drop(1); // arr => [1, 2, 3]arr.$drop(1); // arr => [1, 2]

示例代码2:

var arr = [1, 2, 3, 4, 5];var dropped = arr.$drop(3); // arr => [1, 2] dropped => [3, 4, 5]

$removeIf

  • <number> $removeIf(fn) - 删除所有满足条件的元素,并返回删除的元素的个数

示例代码1:

var arr = [ 1, 2, 3, 4, 5];arr.$removeIf(function (k, v) {	return (v >= 3);});// arr => [1, 2]

示例代码2:

var arr = [ 1, 2, 3, 4, 5];arr.$removeIf(function (k, v) {	return true;});// arr => []

$keepIf

  • <number> $keepIf(fn) - 保留所有满足条件的元素,删除不满足条件的元素,并返回删除的元素的个数

示例代码1:

var arr = [ 1, 2, 3, 4, 5];arr.$keepIf(function (k, v) {	return (v >= 3);})// arr => [3, 4, 5]

$clear

  • <boolean> $clear() - 清空数组

示例代码1:

var arr = [1, 2, 3];arr.$clear(); // arr => []

$replace

  • <boolean> $replace(newValues) - 将当前数组的元素替换成新的数组中的元素

示例代码1:

var arr = [ 1, 2, 3, 4, 5];arr.$replace(); // arr => [1, 2, 3, 4, 5]arr.$replace([]); // arr => []arr.$replace(["a", "b", "c"]); // arr => ["a", "b", "c"]

$unique

  • <boolean> $unique(fn) - 去除数组中的相同数据

示例代码1:

var arr = [1, 2, 2, 3, 3, 3];arr.$unique(); // arr => [1, 2, 3]

示例代码2:

var arr = [1, 1, 2, 2, 3, 3, 4, 4];arr.$unique(function (k, v) {	if (v >= 3) return 3;	if (v <= 2) return 2;});// 此时要比较的值变成[2, 2, 2, 2, 3, 3, 3, 3]// arr => [1, 3]

$set

  • <boolean> $set(index, value) - 设置某个索引位置上的值

示例代码1:

var arr = [1, 2, 3];arr.$set(1, "a"); // arr => [1, "a", 3]arr.$set(4, "a"); // arr不变,因为4已经超出数组长度

$sort

  • <boolean> $sort(compare) - 对该数组进行正排序

示例代码1:

var arr = [4, 2, 5, 3, 1];arr.$sort(function (v1, v2) {	return (v1 - v2) ;});//arr => [1, 2, 3, 4, 5]

示例代码2(实现倒排序):

var arr = [4, 2, 5, 3, 1];arr.$sort(function (v1, v2) {	return -(v1 - v2) ;});//arr => [5, 4, 3, 2, 1]

示例代码3(实现随机排序):

var arr = [4, 2, 5, 3, 1];arr.$sort(function (v1, v2) {	return Math.random() - 0.5;});//arr => [2, 4, 5, 1, 3]

$rsort

  • <boolean> $rsort(compare) - 对该数组进行倒排序

示例代码同$sort(compare),只不过把顺序倒过来。

$asort

  • <array> $asort(compare) - 对该数组进行正排序,并返回排序后对应的索引

$arsort

  • <array> $arsort(compare) - 对该数组进行倒排序,并返回排序后对应的索引

$asc

  • <boolean> $asc(field) - 依据单个字段进行正排序

示例代码1:

var arr = [    { "name": "Libai", "age": 24 },    { "name": "Zhangsan", "age": 22 },    { "name": "Wanger", "age": 23 }];arr.$asc("age");

此时的arr变成:

[	{ "name": "Zhangsan", "age": 22 },	{ "name": "Wanger", "age": 23 },    { "name": "Libai", "age": 24 }]

$desc

  • <boolean> $desc(field) - 依据单个字段进行倒排序

示例代码1:

var arr = [    { "name": "Libai", "age": 24 },    { "name": "Zhangsan", "age": 22 },    { "name": "Wanger", "age": 23 }];arr.$desc("age");

此时的arr变成:

[    { "name": "Libai", "age": 24 },    { "name": "Wanger", "age": 23 },    { "name": "Zhangsan", "age": 22 }]

$swap

  • <boolean> $swap(index1, index2) - 交换数组的两个索引对应的值

示例代码1:

arr = [1, 2, 3];arr.$swap(0, 2); // arr => [3, 2, 1]

$shuffle

  • <boolean> $shuffle() - 打乱数组中元素顺序

示例代码1:

var arr = [1, 2, 3];arr.$shuffle();  // arr => [2, 3, 1]arr.$shuffle();  // arr => [1, 3, 2]

$contains

  • <boolean> $contains(v) - 判断数组中是否包含某个值

示例代码1:

[1, 2, 3].$contains(3); // => true[1, 2, 3].$contains(4); // => false[1, 2, 3].$contains(null); // => false

$include

  • <boolean> $include(v) - 同$contains(v)作用一致

$each

  • <boolean> $each(fn) - 遍历数组

示例代码1:

[1, 2, 3].$each(function (k, v) {	console.log( "index:" + k + " v:" + v );});

输出:

index:0 v:1index:1 v:2index:2 v:3

$get

  • <mixed> $get(index) - 获取某个索引位置上的值

示例代码1:

[1, 2, 3].$get(0); // => 1[1, 2, 3].$get(2); // => 3[].$get(0); // => null

$getAll

  • <array> $getAll(index1, indexes1, ...) - 获取一组索引对应的值,如果超出索引范围,则不返回数据

示例代码1:

var arr = [1, 2, 3, 4, 5];var newArr = arr.$getAll(); // newArr => []newArr = arr.$getAll(0, 2, 4); // newArr => [1, 3, 5]newArr = arr.$getAll(0, 2, 4, 6, 8); // newArr => [1, 3, 5] 因为6和8超出索引范围newArr = arr.$getAll(0, 2, [3, 4]); // newArr => [1, 3, 4, 5]

$first

  • <mixed> $first() - 取得第一个元素值

示例代码1:

[1, 2, 3].$first(); // => 1[].$first(); // => null

$last

  • <mixed> $last() - 取得第一个元素值

示例代码1:

[1, 2, 3].$last(); // => 3[].$last(); // => null

$isEmpty

  • <boolean> $isEmpty() - 判断数组是否为空

示例代码1:

[1, 2, 3].$isEmpty(); // => false[].$isEmpty(); // => true

$all

  • <boolean> $all(fn) - 对容器中元素应用迭代器,并判断是否全部返回真

示例代码1:

[1, 2, 3].$all(function (k, v) {	return v > 1;});// => false

示例代码2:

[1, 2, 3].$all(function (k, v) {	return v > 0;});// => true

$any

  • <boolean> $any(fn) - 对容器中元素应用迭代器,并判断是否有一次返回真

示例代码1:

[1, 2, 3].$any(function (k, v) {	return v > 3;});// => false

示例代码2:

[1, 2, 3, 4, 5].$any(function (k, v) {	return v > 3;});// => true

$map

  • <array> $map(fn) - 对容器中元素应用迭代器,并将每次执行的结果放入一新数组中

示例代码1:

[1, 2, 3].$map(function (k, v) {	return v * v;});// => [1, 4, 9]

从v0.0.2起,可以使用Array.$nil来跳过某些不想返回的值:

[ 
                       
                    
                    

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap