Array2D

命名空间

Array2D

说明:
  • 一行代码完成二维数组筛选及分类汇总 一行代码完成行列批量操作 甚至是按某个区域批量操作
作者:
  • 郑广学 2023.9.30 微信EXCEL880B 公众号EXCEL880 官网vbayyds.com 淘宝店 郑广学工作室
别名:
  • z二维数组

函数:

version() → {String}

说明:
  • Array2D函数库版本号
返回值:
返回当前版本号
Type
String
例子
console.log(ok2D.version()) //输出 1.0.0 版本升级版本号会增加 最新版可到教学群回复 案例文件
当前版本 v1.0.0

z平均值(arr, 列选择函数) → {Number}

说明:
  • 这个函数用于计算指定列的平均值
别名:
  • average
  • average
参数列表:
参数名称 参数类型 备注
arr Array 数组
列选择函数 function 用于选择要计算平均值的列
返回值:
平均值
Type
Number
例子
var arr = [[1, 2, 3],[4,5,6],[7,8,9]];
var average =Array2D.z平均值(arr, 'f1');//选择第一列 字符串简写模式
var average =Array2D.average(arr, r=>r[0]);//完整回调函数形式
console.log(average); // 输出平均值
//输出结果
4

average(arr, 列选择函数) → {Number}

说明:
  • 这个函数用于计算指定列的平均值
别名:
  • z平均值
  • z平均值
参数列表:
参数名称 参数类型 备注
arr Array 数组
列选择函数 function 用于选择要计算平均值的列
返回值:
平均值
Type
Number
例子
var arr = [[1, 2, 3],[4,5,6],[7,8,9]];
var average =Array2D.z平均值(arr, 'f1');//选择第一列 字符串简写模式
var average =Array2D.average(arr, r=>r[0]);//完整回调函数形式
console.log(average); // 输出平均值
//输出结果
4

z上下连接(arr, brr) → {Array}

说明:
  • 这个函数用于将两个数组按行连接
别名:
  • concat
参数列表:
参数名称 参数类型 备注
arr Array 第一个数组
brr Array 第二个数组
返回值:
连接后的数组
Type
Array
例子
var arr = [[1, 2, 3],[4, 5, 6],[7 ,8 , 9]];
var brr = [[11, 22, 33],[44,55,66],[7,8,9]];
var result = Array2D.z上下连接(arr, brr);
logjson(result);
//输出结果
[[1,2,3],
[4,5,6],
[7,8,9],
[11,22,33],
[44,55,66],
[7,8,9]]

concat(arr, brr) → {Array}

说明:
  • 这个函数用于将两个或者多个数组按行连接
别名:
  • z上下连接
参数列表:
参数名称 参数类型 备注
arr Array 第一个数组
brr Array 第二个数组 或者是多个数组 依次传递 嵌套的二维数组用 ...args
返回值:
连接后的数组
Type
Array
例子
var arr = [1, 2, 3];
var brr = [4, 5, 6];
var result = Array2D.concat(arr, brr);
logjson(result);
//输出结果
[[1],
[2],
[3],4,5,6]

z复制到指定位置(arr) → {Array}

说明:
  • 这个函数用于将数组复制到指定位置
别名:
  • copyWithin
  • copyWithin
参数列表:
参数名称 参数类型 备注
arr Array 数组
返回值:
复制后的数组
Type
Array
例子
var arr = [1, 2, 3, 4, 5];
var result = Array2D.z复制到指定位置(arr);
logjson(result); // 输出复制后的数组
//输出结果
[[1],
[2],
[3],
[4],
[5]]

copyWithin(arr) → {Array}

说明:
  • 这个函数用于将数组复制到指定位置
别名:
  • z复制到指定位置
  • z复制到指定位置
参数列表:
参数名称 参数类型 备注
arr Array 数组
返回值:
复制后的数组
Type
Array
例子
var arr =  [[1, 2, 3],[4, 5, 6],[7 ,8 , 9]];
var result = Array2D.copyWithin(arr,2,1);
logjson(result);// 输出复制后的数组
//输出结果
[[1,2,3],
[4,5,6],
[4,5,6]]

z数量(arr) → {Number}

说明:
  • 这个函数用于计算数组元素的数量
别名:
  • count
  • count
参数列表:
参数名称 参数类型 备注
arr Array 数组
返回值:
数组元素的数量
Type
Number
例子
var arr = [1, 2, 3, 4, 5];
var result = Array2D.z数量(arr);
console.log(result); // 输出数组元素的数量
//输出结果
5

count(arr) → {Number}

说明:
  • 这个函数用于计算数组元素的数量
别名:
  • z数量
  • z数量
参数列表:
参数名称 参数类型 备注
arr Array 数组
返回值:
数组元素的数量
Type
Number
例子
var arr = [[1,2],[3,4]];
var result = Array2D.count(arr);
console.log(result); // 输出数组行数 2
//输出结果
2

z笛卡尔积(arr, brr) → {Array}

说明:
  • 这个函数用于计算两个数组的笛卡尔积
别名:
  • crossjoin
  • crossjoin
参数列表:
参数名称 参数类型 备注
arr Array 第一个数组
brr Array 第二个数组
返回值:
笛卡尔积数组
Type
Array
例子
var arr = [1, 2, 3];
var brr = [4, 5, 6];
var result = Array2D.z笛卡尔积(arr, brr);
logjson(result); // 输出笛卡尔积数组
//输出结果
[[1,4],
[1,5],
[1,6],
[2,4],
[2,5],
[2,6],
[3,4],
[3,5],
[3,6]]

crossjoin(arr, brr) → {Array}

说明:
  • 这个函数用于计算两个数组的笛卡尔积
别名:
  • z笛卡尔积
  • z笛卡尔积
参数列表:
参数名称 参数类型 备注
arr Array 第一个数组
brr Array 第二个数组
返回值:
笛卡尔积数组
Type
Array
例子
var arr = [1, 2, 3];
var brr = [4, 5, 6];
var result = Array2D.crossjoin(arr, brr);
logjson(result);// 输出笛卡尔积数组
//输出结果
[[1,4],
[1,5],
[1,6],
[2,4],
[2,5],
[2,6],
[3,4],
[3,5],
[3,6]]

z批量删除列(arr, 列号数组) → {Array}

说明:
  • 这个函数用于批量删除指定列
别名:
  • deleteCols
  • deleteCols
参数列表:
参数名称 参数类型 备注
arr Array 数组
列号数组 Array 要删除的列号数组
返回值:
删除指定列后的数组
Type
Array
例子
var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
var 列号数组 = [1, 2];
var result = Array2D.z批量删除列(arr, 列号数组);
logjson(result); // 输出删除指定列后的数组
//输出结果
[[1],
[4],
[7]]

deleteCols(arr, 列号数组) → {Array}

说明:
  • 这个函数用于批量删除指定列
别名:
  • z批量删除列
  • z批量删除列
参数列表:
参数名称 参数类型 备注
arr Array 数组
列号数组 Array 要删除的列号数组 要删除的行号数组 传空字符串则代表删除空行
返回值:
删除指定列后的数组
Type
Array
例子
var arr = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
['a','b','c']];
var result = Array2D.deleteCols(arr,  [0, 2]);//删除第1列和第3列
logjson(result);
//输出结果
[[2],
[5],
[8],
["b"]]
var result = Array2D.deleteCols(arr, 'f3');//删除第3列 以f数字形式按1数列
logjson(result);
//输出结果
[[1,2],
[4,5],
[7,8],
["a","b"]]

z批量删除行(arr, 行号数组) → {Array}

说明:
  • 这个函数用于批量删除指定行
别名:
  • deleteRows
  • deleteRows
参数列表:
参数名称 参数类型 备注
arr Array 数组
行号数组 Array 要删除的行号数组
返回值:
删除指定行后的数组
Type
Array
例子
var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
var 行号数组 = [1, 2];
var result = Array2D.z批量删除行(arr, 行号数组);
logjson(result); // 输出删除指定行后的数组
//输出结果
[[1,2,3]]

deleteRows(arr, 行号数组) → {Array}

说明:
  • 这个函数用于批量删除指定行
别名:
  • z批量删除行
  • z批量删除行
参数列表:
参数名称 参数类型 备注
arr Array 数组
行号数组 Array 要删除的行号数组 传空字符串则代表删除空行
返回值:
删除指定行后的数组
Type
Array
例子
var arr = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
['a','b','c']];
var 行号数组 = [1, 2];
var result = Array2D.deleteRows(arr, 行号数组);
logjson(result); // 输出删除指定行后的数组
//输出结果
[[1,2,3],
["a","b","c"]]
var result = Array2D.deleteRows(arr, 'f2-f4');//也可以写删除2到4行 只留下第一行
logjson(result); // 输出两次删除后的数组
//输出结果
[[1,2,3]]

z去重(arr, col, 结果列选择器) → {Array}

说明:
  • 这个函数用于去除数组中的重复元素
别名:
  • distinct
参数列表:
参数名称 参数类型 备注
arr Array 数组
col function 列选择器 也可以接受map型回调函数 不指定则按整行去重
结果列选择器 function 设为'' 返回所有列 不写则返回列选择器对应列
返回值:
去重后的数组
Type
Array
例子
var arr =[[1, 2, 3],
[1, 2, 6],
[1, 2, 3],
['a','b','c']];;
log("按整行去重")
var result = Array2D.z去重(arr);//整行去重
logjson(result);
//输出结果
按整行去重
[[1,2,3],
[1,5,6],
["a","b","c"]]
var result = Array2D.z去重(arr,row=>row[0],'');//按指定规则 这里按第一列去重
var result = Array2D.z去重(arr,'f1,f2','');//按列号去重
log("按第一列去重")
logjson(result); // 输出去重后的数组
//输出结果
按第1 2列去重
[[1,2,3],
["a","b","c"]]

distinct(arr, col, resultSelector) → {Array}

说明:
  • 这个函数用于去除数组中的重复元素
别名:
  • z去重
参数列表:
参数名称 参数类型 备注
arr Array 数组
col any 列选择器 也可以接受map型回调函数 不指定则按整行去重
resultSelector any 结果列选择器 决定返回那些列 相当于再跟一个selectCols 默认按列选择器返回 '' 返回所有列
返回值:
去重后的数组
Type
Array
例子
var arr =[[1, 2, 3],
[1, 2, 6],
[1, 2, 3],
['a','b','c']];;
log("按整行去重")
var result = Array2D.z去重(arr);//整行去重
logjson(result);
//输出结果
按整行去重
[[1,2,3],
[1,5,6],
["a","b","c"]]
var result = Array2D.z去重(arr,row=>row[0],'');//按指定规则 这里按第一列去重
var result = Array2D.z去重(arr,'f1,f2','');//按列号去重
log("按第一列去重")
logjson(result); // 输出去重后的数组
//输出结果
按第1 2列去重
[[1,2,3],
["a","b","c"]]

z全部满足(arr, 关键字选择器) → {Boolean}

说明:
  • 这个函数用于判断数组中的所有元素是否都满足给定的条件
别名:
  • every
参数列表:
参数名称 参数类型 备注
arr Array 数组
关键字选择器 any 可用f1模式 也可以用数组模式
返回值:
是否所有元素都满足条件
Type
Boolean
例子
var arr = [1, 2, 3, 4, 5];
var conditionCallback = (element) => element > 0; // 判断元素是否大于0
var result = Array2D.z全部满足(arr, conditionCallback);
console.log(result); // 输出是否所有元素都满足条件
//输出结果
true

every(arr, 条件回调函数) → {Boolean}

说明:
  • 这个函数用于判断数组中的所有元素是否都满足给定的条件
别名:
  • z全部满足
参数列表:
参数名称 参数类型 备注
arr Array 数组
条件回调函数 function 用于判断元素是否满足条件的回调函数
返回值:
是否所有元素都满足条件
Type
Boolean
例子
var arr = [1, 2, 3, 4, 5];
var result = Array2D.every(arr, element => element > 0); // 判断元素是否大于0
console.log(result); // 输出是否所有元素都满足条件
//输出结果
true

z排除(arr, brr, 左表列选择器, 右表列选择器) → {Array}

说明:
  • 这个函数用于从左表中排除右表中的元素
别名:
  • except
参数列表:
参数名称 参数类型 备注
arr Array 左表数组
brr Array 右表数组
左表列选择器 function 用于选择左表中要比较的列
右表列选择器 function 用于选择右表中要比较的列
返回值:
排除后的数组
Type
Array
例子
var arr = [1, 2, 3, 4, 5];
var brr = [3, 4, 5, 6, 7];
var leftColumnSelector = (element) => element; // 选择元素本身进行比较
var rightColumnSelector = (element) => element; // 选择元素本身进行比较
var result = Array2D.z排除(arr, brr, leftColumnSelector, rightColumnSelector);
logjson(result); // 输出排除后的数组
//输出结果
[[1],
[2],
[3],
[4],
[5]]

except(arr, brr, 左表列选择器, 右表列选择器) → {Array}

说明:
  • 这个函数用于从左表中排除右表中的元素
别名:
  • z排除
参数列表:
参数名称 参数类型 备注
arr Array 左表数组
brr Array 右表数组
左表列选择器 function 用于选择左表中要比较的列
右表列选择器 function 用于选择右表中要比较的列
返回值:
排除后的数组
Type
Array
例子
var arr = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
['a','b','c']];
var brr = [
[1, 2, 3],
[7, 5, 9]]
log('按整行比较')
var result = Array2D.except(arr,brr);//按整行比较 只有1,2,3这行排除
logjson(result);
//输出结果
按整行比较
[[4,5,6],
[7,8,9],
["a","b","c"]]
log('按指定列比较');
var result = Array2D.except(arr,brr,a=>a[2],b=>b[2]);//按第3列比较
logjson(result); // 输出排除后的数组
//输出结果
按指定列比较
[[4,5,6],
["a","b","c"]]

z批量填充(arr, 值) → {Array}

说明:
  • 这个函数用于批量填充数组的所有元素为指定值
别名:
  • fill
参数列表:
参数名称 参数类型 备注
arr Array 数组
* 要填充的值
返回值:
填充后的数组
Type
Array
例子
var arr = [1, 2, 3, 4, 5];
var value = 0;
var result = Array2D.z批量填充(arr, value);
logjson(result);  // 输出填充后的数组
//输出结果
[[0],
[0],
[0],
[0],
[0]]

fill(arr, 值) → {Array}

说明:
  • 这个函数用于批量填充数组的所有元素为指定值
别名:
  • z批量填充
参数列表:
参数名称 参数类型 备注
arr Array 数组
* 要填充的值
返回值:
填充后的数组
Type
Array
例子
var arr = [1, 2, 3, 4, 5];
var value = 0;
var result = Array2D.fill(arr, value);
logjson(result); // 输出填充后的数组
//输出结果
[[0],
[0],
[0],
[0],
[0]]

z筛选(arr, 条件回调) → {Array}

说明:
  • 这个函数用于根据指定的条件筛选数组的元素
别名:
  • filter
参数列表:
参数名称 参数类型 备注
arr Array 数组
条件回调 function 用于判断元素是否满足条件的回调函数
返回值:
筛选后的数组
Type
Array
例子
var arr = [1, 2, 3, 4, 5];
var conditionCallback = (element) => element > 2; // 判断元素是否大于2
var result = Array2D.z筛选(arr, conditionCallback);
logjson(result); // 输出筛选后的数组
//输出结果
[[3],
[4],
[5]]

filter(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于根据指定的条件筛选数组的元素
别名:
  • z筛选
参数列表:
参数名称 参数类型 备注
arr Array 数组
条件回调函数 function 用于判断元素是否满足条件的回调函数
返回值:
筛选后的数组
Type
Array
例子
var arr = [1, 2, 3, 4, 5];
var conditionCallback = (element) => element > 2; // 判断元素是否大于2
var result = Array2D.filter(arr, conditionCallback);
logjson(result); // 输出筛选后的数组
//输出结果
[[3],
[4],
[5]]

z查找单个(arr, 条件回调) → {Object}

说明:
  • 这个函数用于在数组中查找满足条件的单个元素
别名:
  • find
参数列表:
参数名称 参数类型 备注
arr Array 数组
条件回调 function 用于判断元素是否满足条件的回调函数
返回值:
查找到的单个元素
Type
Object
例子
var arr = [1, 2, 3, 4, 5];
var conditionCallback = (element) => element > 2; // 判断元素是否大于2
var result = Array2D.z查找单个(arr, conditionCallback);
logjson(result); // 输出查找到的单个元素
//输出结果
[3]

find(arr, 条件回调) → {Object}

说明:
  • 这个函数用于在数组中查找满足条件的单个元素
别名:
  • z查找单个
参数列表:
参数名称 参数类型 备注
arr Array 数组
条件回调 function 用于判断元素是否满足条件的回调函数
返回值:
查找到的单个元素
Type
Object
例子
var arr = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
['a','b','c']];  
var result = Array2D.find(arr, row=>row[0]>2);
logjson(result);// 输出查找到的单个元素
//输出结果
[4,5,6]

z查找所有下标(arr, 条件回调) → {Array}

说明:
  • 这个函数用于在数组中查找满足条件的所有元素的下标
别名:
  • findAllIndex
参数列表:
参数名称 参数类型 备注
arr Array 数组
条件回调 function 用于判断元素是否满足条件的回调函数
返回值:
查找到的所有元素的下标
Type
Array
例子
var arr = [1, 2, 3, 4, 5];
var conditionCallback = (element) => element > 2; // 判断元素是否大于2
var result = Array2D.z查找所有下标(arr, conditionCallback);
logjson(result); // 输出查找到的所有元素的下标
//输出结果
[2,3,4]

findAllIndex(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于在数组中查找满足条件的所有元素的下标
别名:
  • z查找所有下标
参数列表:
参数名称 参数类型 备注
arr Array 数组
条件回调函数 function 用于判断元素是否满足条件的回调函数
返回值:
查找到的所有元素的下标
Type
Array
例子
var arr = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
['a','b','c']];
var result = Array2D.findAllIndex(arr, row=>row[0]>2);
logjson(result);  // 输出查找到的所有元素的下标
//输出结果
[1,2]

z查找元素下标(arr) → {Number}

说明:
  • 这个函数用于在数组中查找指定元素的下标
别名:
  • findIndex
参数列表:
参数名称 参数类型 备注
arr Array 数组
返回值:
指定元素的下标
Type
Number
例子
var arr = [1, 2, 3, 4, 5];
var result = Array2D.z查找元素下标(arr);
logjson(result); // 输出指定元素的下标
//输出结果
0

findIndex(arr) → {Number}

说明:
  • 这个函数用于在数组中查找指定元素的下标
别名:
  • z查找元素下标
参数列表:
参数名称 参数类型 备注
arr Array 数组
返回值:
指定元素的下标
Type
Number

z第一个(arr) → {Array}

说明:
  • 这个函数用于获取二维数组的第一个子数组
别名:
  • first
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
第一个子数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var result = Array2D.z第一个(arr);
logjson(result); // 输出第一个子数组
//输出结果
[[1,2]]

first(arr, 条件回调函数, 默认值) → {Array}

说明:
  • 这个函数用于获取二维数组中满足条件的第一个子数组,如果没有满足条件的子数组,则返回默认值
别名:
  • z第一个
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于判断子数组是否满足条件的回调函数
默认值 * 默认值
返回值:
满足条件的第一个子数组或默认值
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var conditionCallback = (subArray) => subArray[0] > 2; // 判断子数组的第一个元素是否大于2
var defaultValue = [];
var result = Array2D.first(arr, conditionCallback, defaultValue);
logjson(result);  // 输出满足条件的第一个子数组或默认值
//输出结果
[[3,4]]

z降维(arr, 深度) → {Array}

说明:
  • 这个函数用于将二维数组降维为一维数组
别名:
  • flat
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
深度 number 降维的深度,默认为1
返回值:
降维后的一维数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var depth = 2;
var result = Array2D.z降维(arr, depth);
logjson(result); // 输出降维后的一维数组
//输出结果
[[1],
[2],
[3],
[4],
[5],
[6]]

flat(arr, 深度) → {Array}

说明:
  • 这个函数用于将二维数组降维为一维数组
别名:
  • z降维
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
深度 number 降维的深度,默认为1
返回值:
降维后的一维数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var depth = 2;
var result = Array2D.flat(arr, depth);
logjson(result); // 输出降维后的一维数组
//输出结果
[[1],
[2],
[3],
[4],
[5],
[6]]

z遍历执行(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于遍历执行二维数组的每个子数组,并返回执行结果组成的数组
别名:
  • forEach
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于执行每个子数组的回调函数
返回值:
执行结果组成的数组
Type
Array
例子
var brr = [[1, 2], [3, 4], [5, 6]];    
Array2D.z遍历执行(brr, row=>{
console.log(row[0]*2);//对每行的第1列*2输出
});
//输出结果
2
6
10
//for each回调完整形态也可以写回数据
var result = Array2D.z遍历执行(brr,
(row,index,arr)=>{//注意这里的arr相当于指向操作目标arr
arr[index][0]=arr[index][0]*2; //对数组操作后写入原数组
});
log("改变原数组")
logjson(brr); //输出数组
//输出结果
改变原数组
[[2,2],
[6,4],
[10,6]]

forEach(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于遍历执行二维数组的每个子数组,并返回执行结果组成的数组
别名:
  • z遍历执行
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于执行每个子数组的回调函数
返回值:
执行结果组成的数组
Type
Array
例子
var brr = [[1, 2], [3, 4], [5, 6]];    
Array2D.forEach(brr, row=>{
console.log(row[0]*2);//对每行的第1列*2输出
});
//输出结果
2
6
10
//for each回调完整形态也可以写回数据
var result = Array2D.forEach(brr,
(row,index,arr)=>{//注意这里的arr相当于指向操作目标arr
arr[index][0]=arr[index][0]*2; //对数组操作后写入原数组
});
log("改变原数组")
logjson(brr); //输出数组
//输出结果
改变原数组
[[2,2],
[6,4],
[10,6]]

z倒序遍历执行(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于倒序遍历执行二维数组的每个子数组,并返回执行结果组成的数组
别名:
  • forEachRev
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于执行每个子数组的回调函数
返回值:
执行结果组成的数组
Type
Array
例子
var brr = [[1, 2], [3, 4], [5, 6]];   
Array2D.z倒序遍历执行(brr, row=>{
console.log(row[0]*2);//对每行的第1列*2输出 注意输出的顺序
});
//输出结果
10
6
2
logjson(brr); //输出数组	
//输出结果
[[1,2],
[3,4],
[5,6]]

forEachRev(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于倒序遍历执行二维数组的每个子数组,并返回执行结果组成的数组
别名:
  • z倒序遍历执行
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于执行每个子数组的回调函数
返回值:
执行结果组成的数组
Type
Array
例子
var brr = [[1, 2], [3, 4], [5, 6]];   
Array2D.forEachRev(brr, row=>{
console.log(row[0]*2);//对每行的第1列*2输出 注意输出的顺序
});
//输出结果
10
6
2
logjson(brr); //输出数组
//输出结果
[[1,2],
[3,4],
[5,6]]

z分页取数(arr, 第几页, 每页数量) → {Array}

说明:
  • 这个函数用于分页取二维数组的数据
别名:
  • forPage
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
第几页 number 第几页的数据
每页数量 number 每页的数据数量
返回值:
分页取到的数据
Type
Array

forPage(arr, 第几页, 每页数量) → {Array}

说明:
  • 这个函数用于分页取二维数组的数据
别名:
  • z分页取数
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
第几页 number 第几页的数据
每页数量 number 每页的数据数量
返回值:
分页取到的数据
Type
Array

z左右全连接(arr, brr, 左表列选择器, 右表列选择器, 结果选择器) → {Array}

说明:
  • 这个函数用于对两个二维数组进行左右全连接操作,并返回连接后的结果数组
别名:
  • fulljoin
参数列表:
参数名称 参数类型 备注
arr Array 左表二维数组
brr Array 右表二维数组
左表列选择器 function 用于选择左表中要连接的列的回调函数
右表列选择器 function 用于选择右表中要连接的列的回调函数
结果选择器 function 连接后的结果选择器的回调函数,默认为(a, b) => a.concat(a, b)
返回值:
连接后的结果数组
Type
Array
例子
var arr = [[1, 'A'],
[2, 'B'],
[3, 'C']];
var brr = [[2, 'B'],
[3, 'Y'], 
[4, 'Z']];
var result = Array2D.z左右全连接(arr, brr, 'f1', 'f1');
logjson(result);
//输出结果
[[1,"A","",""],
[2,"B",2,"B"],
[3,"C",3,"Y"]]
log("自定义结果选择集")
//结果选择集可以用完整箭头函数 (a,b)=>a.concat(b)
var result = Array2D.z左右全连接(arr, brr, 'f2', 'f2','a.f1,b.f2');
logjson(result);
//输出结果
自定义结果选择集
[[1,""],
[2,"B"],
[3,""]]

fulljoin(arr, brr, 左表列选择器, 右表列选择器, 结果选择器) → {Array}

说明:
  • 这个函数用于对两个二维数组进行左右全连接操作,并返回连接后的结果数组
别名:
  • z左右全连接
参数列表:
参数名称 参数类型 备注
arr Array 左表二维数组
brr Array 右表二维数组
左表列选择器 function 用于选择左表中要连接的列的回调函数
右表列选择器 function 用于选择右表中要连接的列的回调函数
结果选择器 function 连接后的结果选择器的回调函数,默认为(a, b) => a.concat(a, b)
返回值:
连接后的结果数组
Type
Array
例子
var arr = [[1, 'A'],
[2, 'B'],
[3, 'C']];
var brr = [[2, 'B'],
[3, 'Y'], 
[4, 'Z']];
var result = Array2D.fulljoin(arr, brr, 'f1', 'f1');
logjson(result);
//输出结果
[[1,"A","",""],
[2,"B",2,"B"],
[3,"C",3,"Y"],
["","",3,"Y"],
["","",4,"Z"]]
log("自定义结果选择集")
//结果选择集可以用完整箭头函数 (a,b)=>a.concat(b)
var result = Array2D.fulljoin(arr, brr, 'f2', 'f2','a.f1,b.f2');
logjson(result);
//输出结果
自定义结果选择集
[[1,""],
[2,"B"],
[3,""],
["","Y"],
["","Z"]]

z分组(arr, 关键字选择器, 分隔符) → {Map}

说明:
  • 这个函数用于对二维数组进行分组,并返回分组后的结果Map
别名:
  • groupBy
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
关键字选择器 function 用于选择分组的关键字的回调函数
分隔符 string 分组结果中每个键的分隔符,默认为"@^@"
返回值:
分组后的结果Map
Type
Map

groupBy(arr, 关键字选择器, 分隔符) → {Map}

说明:
  • 这个函数用于对二维数组进行分组,并返回分组后的结果Map
别名:
  • z分组
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
关键字选择器 function 用于选择分组的关键字的回调函数
分隔符 string 分组结果中每个键的分隔符,默认为"@^@"
返回值:
分组后的结果Map
Type
Map
例子
var arr = [[1, 'A'],
[2, 'B'],
[3, 'C'], 
[4, 'B'], 
[5, 'A']];
var result = Array2D.groupBy(arr, 'f2');//注意结果是一个map
logjson(Array.from(result),false);
//输出结果
[["A",[[1,"A"],
[5,"A"]]],
["B",[[2,"B"],
[4,"B"]]],
["C",[[3,"C"]]]]

z分组汇总(arr, 关键字选择器, 结果选择器, 分隔符) → {Array}

说明:
  • 这个函数用于对二维数组进行分组汇总,并返回汇总后的结果数组
别名:
  • groupInto
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
关键字选择器 function 用于选择分组的关键字的回调函数
结果选择器 function 用于选择汇总结果的回调函数
分隔符 string 分组结果中每个键的分隔符,默认为"@^@"
返回值:
汇总后的结果数组
Type
Array
例子
var arr = [[1, 'A', 10],
[2, 'B', 20], 
[3, 'A', 30], 
[1, 'B', 40],
[1, 'B', 10],
[1, 'A', 10]];
log("按第2列分组汇总,汇总列 第1列求和 每组行数 第3列max")
var result = Array2D.z分组汇总(arr, 'f2','sum("f1"),count(),max("f3")');
logjson(result);
//输出结果
按第2列分组汇总,汇总列 第1列求和 每组行数 第3列max
[["A",5,3,30],
["B",4,3,40]]
log("先按首列排序,再按1+2列分组汇总,汇总列 第1列求和 第2列数据用+连接 第3列求和")
var result = Array2D.z分组汇总(Array2D.sortBy(arr,'f1'), 'f1,f2','sum("f1"),textjoin("f2","+"),sum("f3")');
logjson(result);
//输出结果
先按首列排序,再按1+2列分组汇总,汇总列 第1列求和 第2列数据用+连接 第3列求和
[["1","A",2,"A+A",20],
["1","B",2,"B+B",50],
["2","B",2,"B",20],
["3","A",3,"A",30]]

groupInto(arr, 关键字选择器, 结果选择器, 分隔符) → {Array}

说明:
  • 这个函数用于对二维数组进行分组汇总,并返回汇总后的结果数组
别名:
  • z分组汇总
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
关键字选择器 function 用于选择分组的关键字的回调函数
结果选择器 function 用于选择汇总结果的回调函数
分隔符 string 分组结果中每个键的分隔符,默认为"@^@"
返回值:
汇总后的结果数组
Type
Array
例子
var arr = [[1, 'A', 10],
[2, 'B', 20], 
[3, 'A', 30], 
[1, 'B', 40],
[1, 'B', 10],
[1, 'A', 10]];
log("按第2列分组汇总,汇总列 第1列求和 每组行数 第3列max")
var result = Array2D.groupInto(arr, 'f2','sum("f1"),count(),max("f3")');
logjson(result);
//输出结果
按第2列分组汇总,汇总列 第1列求和 每组行数 第3列max
[["A",5,3,30],
["B",4,3,40]]
log("先按首列排序,再按1+2列分组汇总,汇总列 第1列求和 第2列数据用+连接 第3列求和")
var result = Array2D.groupInto(Array2D.sorByCols(arr,'f1'), 'f1,f2','sum("f1"),textjoin("f2","+"),sum("f3")');
logjson(result);
//输出结果
先按首列排序,再按1+2列分组汇总,汇总列 第1列求和 第2列数据用+连接 第3列求和
[["1","A",2,"A+A",20],
["1","B",2,"B+B",50],
["2","B",2,"B",20],
["3","A",3,"A",30]]

z是否包含值(arr, 值) → {Boolean}

说明:
  • 这个函数用于判断数组是否包含指定的值
别名:
  • includes
参数列表:
参数名称 参数类型 备注
arr Array 数组
* 要判断的值
返回值:
数组是否包含指定的值
Type
Boolean
例子
var arr = [1, 2, 3, 4, 5];
var value = 3;
var result = Array2D.z是否包含值(arr, value);
console.log(result); // 输出是否包含指定的值
//输出结果
true

includes(arr, 值) → {Boolean}

说明:
  • 这个函数用于判断数组是否包含指定的值
别名:
  • z是否包含值
参数列表:
参数名称 参数类型 备注
arr Array 数组
* 要判断的值
返回值:
数组是否包含指定的值
Type
Boolean
例子
var arr =  [[1, 'A'],
[2, 'B'],
[3, 'C'], 
[4, 'B'], 
[5, 'A']];
var result = Array2D.includes(arr, 1);
console.log(result); // 输出是否包含指定的值
//输出结果
true

z下标数组(arr) → {Array}

说明:
  • 这个函数用于获取二维数组的下标数组
别名:
  • indexArray
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
下标数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var result = Array2D.z下标数组(arr);
logjson(result);  // 输出下标数组
//输出结果
["0","1","2"]

indexArray(arr) → {Array}

说明:
  • 这个函数用于获取二维数组的下标数组
别名:
  • z下标数组
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
下标数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var result = Array2D.indexArray(arr);
logjson(result);  // 输出下标数组
//输出结果
[0,1,2]

z值位置(arr, 值) → {Array}

说明:
  • 这个函数用于获取值在二维数组中的位置数组
别名:
  • indexOf
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
* 要查找的值
返回值:
值的位置数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var value = 4;
var result = Array2D.z值位置(arr, value);
logjson(result); // 输出值的位置数组
//输出结果
[1,1]

indexOf(arr, 值) → {Array}

说明:
  • 这个函数用于获取值在二维数组中的位置数组
别名:
  • z值位置
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
* 要查找的值
返回值:
值的位置数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var result = Array2D.indexOf(arr, 3);
logjson(result);//[1,0] 行列坐标 
//输出结果
[1,0]

z批量插入列(arr, 列选择器, 值, 数量) → {Array}

说明:
  • 这个函数用于批量插入列到二维数组
别名:
  • insertCols
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列选择器 function 用于选择要插入的列的回调函数
* 列的初始值,默认为空字符串 也可使用回调函数 与map回调一致
数量 number 要插入的列的数量,默认为1
返回值:
插入列后的二维数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var columnSelector = (row) => row[0] + 1; // 选择第一列的值加1作为要插入的列的值
var value = '';
var count = 2;
var result = Array2D.z批量插入列(arr, columnSelector, value, count);
logjson(result); // 输出插入列后的二维数组
//输出结果
[[1,2],
[3,4],
[5,6]]

insertCols(arr, 列选择器, 值, 数量) → {Array}

说明:
  • 这个函数用于批量插入列到二维数组
别名:
  • z批量插入列
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列选择器 function 用于选择要插入的列的回调函数
* 列的初始值,默认为空字符串 也可使用回调函数 与map回调一致
数量 number 要插入的列的数量,默认为1
返回值:
插入列后的二维数组
Type
Array
例子
var arr = [[1, 2, 3], [4 , 5, 6], [7, 8 , 9]];
var result = Array2D.insertCols(arr, 'f2');//第2列插入空列
logjson(result); // 输出插入列后的二维数组
//输出结果
[[1,"",2,3],
[4,"",5,6],
[7,"",8,9]]
var result = Array2D.insertCols(arr, '0-2','*');//每一列前面插入一列 并填充*
logjson(result); // 输出插入列后的二维数组
//输出结果
[["*",1,"*",2,"*",3],
["*",4,"*",5,"*",6],
["*",7,"*",8,"*",9]]

z批量插入行(arr, 行号数组, 值, 数量) → {Array}

说明:
  • 这个函数用于批量插入行到二维数组
别名:
  • insertRows
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
行号数组 Array 要插入行的行号数组
* 行的初始值,默认为空字符串
数量 number 要插入的行的数量,默认为1
返回值:
插入行后的二维数组
Type
Array
例子
var arr = [[1, 2, 3], [4 , 5, 6], [7, 8 , 9]];
var result = Array2D.z批量插入行(arr, 'f2', "*", 2);//第2行插入2行 填充*
logjson(result);
//输出结果
[[1,2,3],
["*","*","*"],
["*","*","*"],
[4,5,6],
[7,8,9]]

insertRows(arr, 行号数组, 值, 数量) → {Array}

说明:
  • 这个函数用于批量插入行到二维数组
别名:
  • z批量插入行
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
行号数组 Array 要插入行的行号数组
* 行的初始值,默认为空字符串
数量 number 要插入的行的数量,默认为1
返回值:
插入行后的二维数组
Type
Array
例子
var arr = [[1, 2, 3], [4 , 5, 6], [7, 8 , 9]];
var result = Array2D.insertRows(arr, 'f2', "*", 2);//第2行插入2行 填充*
logjson(result);
//输出结果
[[1,2,3],
["*","*","*"],
["*","*","*"],
[4,5,6],
[7,8,9]]

z插入行号(arr, 首行序号) → {Array}

说明:
  • 插入行号函数
别名:
  • insertRowNum
参数列表:
参数名称 参数类型 备注
arr Array 待插入行号的数组
首行序号 Number 首行的行号,默认为0
返回值:
带有行号的新数组
Type
Array
例子
var arr = [[1, 2, 3], [4 , 5, 6], [7, 8 , 9]];
var result = Array2D.z插入行号(arr);//首列插入行号
[[0,1,2,3],
[1,4,5,6],
[2,7,8,9]]

insertRowNum(arr, 首行序号) → {Array}

说明:
  • 根据首行序号插入行号函数
别名:
  • z插入行号
参数列表:
参数名称 参数类型 备注
arr Array 待插入行号的数组
首行序号 Number 首行的行号,默认为0
返回值:
带有行号的新数组
Type
Array
例子
var arr = [[1, 2, 3], [4 , 5, 6], [7, 8 , 9]];
var result = Array2D.z插入行号(arr);//首列插入行号
[[0,1,2,3],
[1,4,5,6],
[2,7,8,9]]

z取交集(arr, brr) → {Array}

说明:
  • 这个函数用于获取两个二维数组的交集
别名:
  • intersect
参数列表:
参数名称 参数类型 备注
arr Array 第一个二维数组
brr Array 第二个二维数组
返回值:
交集数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var brr = [[3, 4], [5, 6], [7, 8]];
var result = Array2D.z取交集(arr, brr);
logjson(result); // 输出交集数组
//输出结果
[[3,4],
[5,6]]

intersect(arr, brr) → {Array}

说明:
  • 这个函数用于获取两个二维数组的交集
别名:
  • z取交集
参数列表:
参数名称 参数类型 备注
arr Array 第一个二维数组
brr Array 第二个二维数组
返回值:
交集数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6],[3, 4],[7, 9]];
var brr = [[3, 4], [5, 6], [7, 8]];
var result = Array2D.intersect(arr, brr);//完全一样的行
logjson(result); // 输出交集数组
//输出结果
[[3,4],
[5,6],
[3,4]]
logjson(Array2D.intersect(arr, brr,'f1','f1'));//可按参考列取交集
//输出结果
[[3,4],
[5,6],
[3,4],
[7,9]]

z空结果(arr) → {boolean}

说明:
  • 这个函数用于判断二维数组是否为空
别名:
  • isEmpty
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
如果为空返回true,否则返回false
Type
boolean
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var result = Array2D.z空结果(arr);
console.log(result); // 输出false
//输出结果
false

isEmpty(arr) → {boolean}

说明:
  • 这个函数用于判断二维数组是否为空
别名:
  • z空结果
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
如果为空返回true,否则返回false
Type
boolean
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var result = Array2D.isEmpty(arr);
console.log(result); // 输出false
//输出结果
false
console.log(Array2D.isEmpty([])); // 输出true
//输出结果
true

z文本连接(arr, 分隔符) → {string}

说明:
  • 这个函数用于将二维数组中的每个子数组连接成文本,并使用指定的分隔符分隔
别名:
  • join
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
分隔符 string 文本连接时使用的分隔符,默认为","
返回值:
连接后的文本
Type
string
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var separator = "-";
var result = Array2D.z文本连接(arr, separator);
logjson(result); // 输出连接后的文本
//输出结果
"1\n2\n3-4\n5-6"

join(arr, 分隔符) → {string}

说明:
  • 这个函数用于将二维数组中的每个子数组连接成文本,并使用指定的分隔符分隔
别名:
  • z文本连接
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
分隔符 string 文本连接时使用的分隔符,默认为","
返回值:
连接后的文本
Type
string
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var separator = "-";
var result = Array2D.join(arr, separator);
logjson(result); // 输出连接后的文本
//输出结果
"1\n2\n3-4\n5-6"

z最后一个(arr, 条件回调函数, 没找到返回默认值) → {Object}

说明:
  • 这个函数用于返回满足条件的最后一个子数组
别名:
  • last
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于判断子数组是否满足条件的回调函数
没找到返回默认值 * 没有找到满足条件的子数组时返回的默认值,默认为undefined
返回值:
满足条件的最后一个子数组或默认值
Type
Object
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var conditionCallback = (subArray) => subArray[0] > 2; // 判断子数组的第一个元素是否大于2
var defaultValue = [];
var result = Array2D.z最后一个(arr, conditionCallback, defaultValue);
logjson(result); // 输出满足条件的最后一个子数组或默认值
//输出结果
[5,6]

last(arr, 条件回调函数, 没找到返回默认值) → {Object}

说明:
  • 这个函数用于返回满足条件的最后一个子数组
别名:
  • z最后一个
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于判断子数组是否满足条件的回调函数
没找到返回默认值 * 没有找到满足条件的子数组时返回的默认值,默认为undefined
返回值:
满足条件的最后一个子数组或默认值
Type
Object
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var conditionCallback = (subArray) => subArray[0] > 2; // 判断子数组的第一个元素是否大于2
var defaultValue = [];
var result = Array2D.last(arr, conditionCallback, defaultValue);
logjson(result); // 输出满足条件的最后一个子数组或默认值
//输出结果
[5,6]

z从后往前值位置(arr) → {number}

说明:
  • 这个函数用于返回从后往前数值的位置
别名:
  • lastIndexOf
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
从后往前数值的位置
Type
number
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var result = Array2D.z从后往前值位置(arr);
logjson(result); // 输出从后往前数值的位置
//输出结果
[-1,-1]

lastIndexOf(arr, 值) → {number}

说明:
  • 这个函数用于返回指定值在二维数组中从后往前数的位置
别名:
  • z从后往前值位置
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
* 指定的值
返回值:
指定值在二维数组中从后往前数的位置,如果未找到则返回-1
Type
number
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var value = 4;
var result = Array2D.lastIndexOf(arr, value);
logjson(result); // 输出指定值在二维数组中从后往前数的位置
//输出结果
[1,1]

z一对多连接(arr, brr, 左表列选择器, 右表列选择器, 结果选择器) → {Array}

说明:
  • 这个函数用于对两个二维数组进行一对多连接操作,并返回连接后的结果数组
别名:
  • leftFulljoin
参数列表:
参数名称 参数类型 备注
arr Array 左表二维数组
brr Array 右表二维数组
左表列选择器 function 用于选择左表中要连接的列的回调函数
右表列选择器 function 用于选择右表中要连接的列的回调函数
结果选择器 function 连接后的结果选择器的回调函数,默认为(a, b) => a.concat(a, b)
返回值:
连接后的结果数组
Type
Array
例子
var arr = [[1, 'A'],
[2, 'B'], 
[3, 'C']];
var brr = [ [2, 'X','C1'],
[1, 'A','C2'],
[1, 'A','C3'],//2个1会被
[4, 'Z','C4']];
var result = Array2D.z一对多连接(arr, brr);//整行比较没有命中的所以右侧都会空
logjson(result);
//输出结果
[[1,"A","","",""],
[2,"B","","",""],
[3,"C","","",""]]
var result = Array2D.z一对多连接(arr, brr,'f1','f1');
logjson(result);
//输出结果
[[1,"A",1,"A","C2"],
[1,"A",1,"A","C3"],
[2,"B",2,"X","C1"],
[3,"C","","",""]]
log('lamda函数写法完全体')
var result = Array2D.z一对多连接(
arr,
brr,
a=>a[0],
b=>b[0],
(a,b)=>[a[0]+'-'+b[0],b[1],a[0]]
);
logjson(result);
//输出结果
lamda函数写法完全体
[["1-1","A",1],
["1-1","A",1],
["2-2","X",2],
["3-","",3]]

leftFulljoin(arr, brr, 左表列选择器, 右表列选择器, 结果选择器) → {Array}

说明:
  • 这个函数用于对两个二维数组进行左外连接操作,并返回连接后的结果数组
别名:
  • z一对多连接
参数列表:
参数名称 参数类型 备注
arr Array 左表二维数组
brr Array 右表二维数组
左表列选择器 function 用于选择左表中要连接的列的回调函数
右表列选择器 function 用于选择右表中要连接的列的回调函数
结果选择器 function 连接后的结果选择器的回调函数,默认为(a, b) => a.concat(a, b)
返回值:
连接后的结果数组
Type
Array
例子
var arr = [[1, 'A'],
[2, 'B'], 
[3, 'C']];
var brr = [ [2, 'X','C1'],
[1, 'A','C2'],
[1, 'A','C3'],//2个1会被
[4, 'Z','C4']];
var result = Array2D.leftFulljoin(arr, brr);//整行比较没有命中的所以右侧都会空
logjson(result);
//输出结果
[[1,"A","","",""],
[2,"B","","",""],
[3,"C","","",""]]
var result = Array2D.leftFulljoin(arr, brr,'f1','f1');
logjson(result);
//输出结果
[[1,"A",1,"A","C2"],
[1,"A",1,"A","C3"],
[2,"B",2,"X","C1"],
[3,"C","","",""]]
log('lamda函数写法完全体')
var result = Array2D.leftFulljoin(
arr,
brr,
a=>a[0],
b=>b[0],
(a,b)=>[a[0]+'-'+b[0],b[1],a[0]]
);
logjson(result);
//输出结果
lamda函数写法完全体
[["1-1","A",1],
["1-1","A",1],
["2-2","X",2],
["3-","",3]]

z左连接(arr, brr, 左表列选择器, 右表列选择器, 结果选择器) → {Array}

说明:
  • 这个函数用于对两个二维数组进行左外连接操作,并返回连接后的结果数组
别名:
  • leftjoin
参数列表:
参数名称 参数类型 备注
arr Array 左表二维数组
brr Array 右表二维数组
左表列选择器 function 用于选择左表中要连接的列的回调函数
右表列选择器 function 用于选择右表中要连接的列的回调函数
结果选择器 function 连接后的结果选择器的回调函数,默认为(a, b) => a.concat(a, b)
返回值:
连接后的结果数组
Type
Array
例子
var arr = [[1, 'A'],
[2, 'B'], 
[3, 'C']];
var brr = [ [2, 'X','C1'],
[1, 'A','C2'],
[1, 'A','C3'],//2个1只会连接第一个
[4, 'Z','C4']];	
var result = Array2D.z左连接(arr, brr);//整行比较没有命中的所以右侧都会空
logjson(result);
//输出结果
[[1,"A","","",""],
[2,"B","","",""],
[3,"C","","",""]]
log('选择列作为连接比较器')//右侧对应关系找到的首行连接过来 左侧的总行数不会变
var result = Array2D.z左连接(arr, brr,'f1','f1');
logjson(result);
//输出结果
选择列作为连接比较器
[[1,"A",1,"A","C2"],
[2,"B",2,"X","C1"],
[3,"C","","",""]]
log('lamda函数写法完全体')
var result = Array2D.z左连接(
arr,
brr,
a=>a[0],
b=>b[0],
(a,b)=>[a[0]+'-'+b[0],b[1],a[0]]
);
logjson(result);
//输出结果
lamda函数写法完全体
[["1-1","A",1],
["2-2","X",2],
["3-","",3]]

leftjoin(arr, brr, 左表列选择器, 右表列选择器, 结果选择器) → {Array}

说明:
  • 这个函数用于对两个二维数组进行左外连接操作,并返回连接后的结果数组
别名:
  • z左连接
参数列表:
参数名称 参数类型 备注
arr Array 左表二维数组
brr Array 右表二维数组
左表列选择器 function 用于选择左表中要连接的列的回调函数
右表列选择器 function 用于选择右表中要连接的列的回调函数
结果选择器 function 连接后的结果选择器的回调函数,默认为(a, b) => a.concat(a, b)
返回值:
连接后的结果数组
Type
Array
例子
var arr = [[1, 'A'],
[2, 'B'], 
[3, 'C']];
var brr = [ [2, 'X','C1'],
[1, 'A','C2'],
[1, 'A','C3'],//2个1只会连接第一个
[4, 'Z','C4']];	
var result = Array2D.leftjoin(arr, brr);//整行比较没有命中的所以右侧都会空
logjson(result);
//输出结果
[[1,"A","","",""],
[2,"B","","",""],
[3,"C","","",""]]
log('选择列作为连接比较器')//右侧对应关系找到的首行连接过来 左侧的总行数不会变
var result = Array2D.leftjoin(arr, brr,'f1','f1');
logjson(result);
//输出结果
选择列作为连接比较器
[[1,"A",1,"A","C2"],
[2,"B",2,"X","C1"],
[3,"C","","",""]]
log('lamda函数写法完全体')
var result = Array2D.leftjoin(
arr,
brr,
a=>a[0],
b=>b[0],
(a,b)=>[a[0]+'-'+b[0],b[1],a[0]]
);
logjson(result);
//输出结果
lamda函数写法完全体
[["1-1","A",1],
["2-2","X",2],
["3-","",3]]

z映射生成(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于根据条件回调函数对二维数组进行映射生成新的数组
别名:
  • map
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于对每个元素进行映射的回调函数
返回值:
映射生成的新数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var conditionCallback = (element) => element[0]*  2; // 对每个元素的第一个值进行乘以2的操作
var result = Array2D.z映射生成(arr, conditionCallback);
logjson(result);
//输出结果
[[2],
[6],
[10]]

map(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于根据条件回调函数对二维数组进行映射生成新的数组
别名:
  • z映射生成
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于对每个元素进行映射的回调函数
返回值:
映射生成的新数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var conditionCallback = (element) => element[0]*  2; // 对每个元素的第一个值进行乘以2的操作
var result = Array2D.map(arr, conditionCallback);
logjson(result);
//输出结果
[[2],
[6],
[10]]

z最大值(arr, 列选择函数) → {Number}

说明:
  • 这个函数用于计算二维数组中指定列的最大值
别名:
  • max
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列选择函数 function 用于选择要比较的列的回调函数
返回值:
最大值
Type
Number
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var columnSelector = (row) => row[1]; // 选择第二列进行比较
var result = Array2D.z最大值(arr, columnSelector);
console.log(result); // 输出最大值
//输出结果
6

max(arr, 列选择函数) → {Number}

说明:
  • 这个函数用于计算二维数组中指定列的最大值
别名:
  • z最大值
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列选择函数 function 用于选择要比较的列的回调函数
返回值:
最大值
Type
Number
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var columnSelector = (row) => row[1]; // 选择第二列进行比较
var result = Array2D.max(arr, columnSelector);
console.log(result); // 输出最大值
//输出结果
6

z中位数(arr, 列选择函数) → {Number}

说明:
  • 这个函数用于计算二维数组中指定列的中位数
别名:
  • median
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列选择函数 function 用于选择要比较的列的回调函数
返回值:
中位数
Type
Number
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var columnSelector = (row) => row[1]; // 选择第二列进行比较
var result = Array2D.z中位数(arr, columnSelector);
console.log(result); // 输出中位数
//输出结果
4

median(arr, 列选择函数) → {Number}

说明:
  • 这个函数用于计算二维数组中指定列的中位数
别名:
  • z中位数
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列选择函数 function 用于选择要比较的列的回调函数
返回值:
中位数
Type
Number
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var columnSelector = (row) => row[1]; // 选择第二列进行比较
var result = Array2D.median(arr, columnSelector);
console.log(result); // 输出中位数
//输出结果
4

z最小值(arr, 列选择函数) → {Number}

说明:
  • 这个函数用于计算二维数组中指定列的最小值
别名:
  • min
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列选择函数 function 用于选择要比较的列的回调函数
返回值:
最小值
Type
Number
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var columnSelector = (row) => row[1]; // 选择第二列进行比较
var result = Array2D.z最小值(arr, columnSelector);
console.log(result); // 输出最小值
//输出结果
2

min(arr, 列选择函数) → {Number}

说明:
  • 这个函数用于计算二维数组中指定列的最小值
别名:
  • z最小值
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列选择函数 function 用于选择要比较的列的回调函数
返回值:
最小值
Type
Number
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var columnSelector = (row) => row[1]; // 选择第二列进行比较
var result = Array2D.min(arr, columnSelector);
console.log(result); // 输出最小值
//输出结果
2

z间隔取数(arr, 间隔, 偏移) → {Object}

说明:
  • 这个函数用于间隔取二维数组的数据,并返回取到的结果对象
别名:
  • nth
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
间隔 number 间隔值,表示每隔多少个元素取一次
偏移 number 偏移值,表示从哪个位置开始取,默认为0
返回值:
取到的结果对象
Type
Object
例子
var arr = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]];
var interval = 2;
var offset = 1;
var result = Array2D.z间隔取数(arr, interval, offset);
logjson(result); // 输出取到的结果对象
//输出结果
[[3,4],
[7,8]]

nth(arr, 间隔, 偏移) → {Object}

说明:
  • 这个函数用于间隔取二维数组的数据,并返回取到的结果对象
别名:
  • z间隔取数
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
间隔 number 间隔值,表示每隔多少个元素取一次
偏移 number 偏移值,表示从哪个位置开始取,默认为0
返回值:
取到的结果对象
Type
Object
例子
var arr = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]];
var interval = 2;
var offset = 1;
var result = Array2D.nth(arr, interval, offset);
logjson(result); // 输出取到的结果对象
//输出结果
[[3,4],
[7,8]]

z补齐数组(arr, 大小, 补齐值) → {Array}

说明:
  • 这个函数用于补齐二维数组的大小,并返回补齐后的新数组
别名:
  • pad
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
大小 number 目标大小,表示补齐后的数组大小
补齐值 any 补齐的值,默认为undefined
返回值:
补齐后的新数组
Type
Array
例子
var arr = [ [1, 'A'],
[2, 'B'], 
[3, 'C'] ];
logjson(Array2D.z补齐数组(arr,4,4,null));//扩充数组行数列数默认填充null 也可填充指定值
//输出结果
[[1,"A",null,null],
[2,"B",null,null],
[3,"C",null,null],
[null,null,null,null]]

pad(arr, 大小, 补齐值) → {Array}

说明:
  • 这个函数用于补齐二维数组的大小,并返回补齐后的新数组
别名:
  • z补齐数组
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
大小 number 目标大小,表示补齐后的数组大小
补齐值 any 补齐的值,默认为undefined
返回值:
补齐后的新数组
Type
Array
例子
var arr = [ [1, 'A'],
[2, 'B'], 
[3, 'C'] ];
logjson(Array2D.pad(arr,4,4,null));//扩充数组行数列数默认填充null 也可填充指定值
//输出结果
[[1,"A",null,null],
[2,"B",null,null],
[3,"C",null,null],
[null,null,null,null]]

z按页数分页(arr, 总页数) → {Array}

说明:
  • 这个函数用于按照总页数对二维数组进行分页,并返回分页后的新数组
别名:
  • pageByCount
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
总页数 number 总页数,表示将二维数组分成多少页
返回值:
分页后的新数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]];
var totalPages = 3;
var result = Array2D.z按页数分页(arr, totalPages);
logjson(result);  // 输出分页后的新数组
//输出结果
[[[1,2],
[3,4]],
[[5,6],
[7,8]],
[[9,10]]]

pageByCount(arr, 总页数) → {Array}

说明:
  • 这个函数用于按照总页数对二维数组进行分页,并返回分页后的新数组
别名:
  • z按页数分页
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
总页数 number 总页数,表示将二维数组分成多少页
返回值:
分页后的新数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]];
var totalPages = 3;
var result = Array2D.pageByCount(arr, totalPages);
logjson(result);  // 输出分页后的新数组
//输出结果
[[[1,2],
[3,4]],
[[5,6],
[7,8]],
[[9,10]]]

z按行数分页(arr, 每页数量) → {Array}

说明:
  • 这个函数用于按照每页数量对二维数组进行分页,并返回分页后的新数组
别名:
  • pageByRows
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
每页数量 number 每页的数据数量
返回值:
分页后的新数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]];
var pageSize = 2;
var result = Array2D.z按行数分页(arr, pageSize);
logjson(result); // 输出分页后的新数组
//输出结果
[[[1,2],
[3,4]],
[[5,6],
[7,8]],
[[9,10]]]

pageByRows(arr, 每页数量) → {Array}

说明:
  • 这个函数用于按照每页数量对二维数组进行分页,并返回分页后的新数组
别名:
  • z按行数分页
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
每页数量 number 每页的数据数量
返回值:
分页后的新数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]];
var pageSize = 2;
var result = Array2D.pageByRows(arr, pageSize);
logjson(result);  // 输出分页后的新数组
//输出结果
[[[1,2],
[3,4]],
[[5,6],
[7,8]],
[[9,10]]]

pageByIndexs(arr, 下标数组) → {Array}

说明:
  • 这个函数用于按照每页数量对二维数组进行分页,并返回分页后的新数组
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
下标数组 Array 每页第一个元素的下标数组
返回值:
分页后的新数组
Type
Array

z尾部弹出一项(arr) → {Object}

说明:
  • 这个函数用于从二维数组的尾部弹出一项,并返回弹出的项
别名:
  • pop
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
弹出的项
Type
Object
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var result = Array2D.z尾部弹出一项(arr);
console.log(result); // 输出弹出的项

pop(arr) → {Object}

说明:
  • 这个函数用于从二维数组的尾部弹出一项,并返回弹出的项
别名:
  • z尾部弹出一项
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
弹出的项
Type
Object
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var result = Array2D.pop(arr);
logjson(result);  // 输出弹出的项
//输出结果
//[5,6]	    

z删除指定项(arr, 条件回调函数, 默认值) → {Object}

说明:
  • 这个函数用于删除二维数组中满足条件的指定项,并返回删除后的数组,如果没有满足条件的项,则返回默认值
别名:
  • pull
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于判断要删除的项的回调函数
默认值 * 默认值
返回值:
删除后的数组或默认值
Type
Object
例子
var arr = [[1, 'A'],
[2, 'B'], 
[3, 'C']];
logjson(Array2D.z删除指定项(arr,row=>row[0]>2));//删除首列大于2的行
//输出结果
[[1,"A"],
[2,"B"]]

pull(arr, 关键字选择器, 默认值) → {Object}

说明:
  • 这个函数用于删除二维数组中满足条件的指定项,并返回删除后的数组,如果没有满足条件的项,则返回默认值
别名:
  • z删除指定项
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
关键字选择器 function 用于选择要删除的项的回调函数
默认值 * 默认值
返回值:
删除后的数组或默认值
Type
Object
例子
var arr = [[1, 'A'],
[2, 'B'], 
[3, 'C']];
logjson(Array2D.pull(arr,row=>row[0]>2));//删除首列大于2的行
//输出结果
//[[1,"A"],
//[2,"B"]]	       

z追加一项(arr, 单行数组) → {Object}

说明:
  • 这个函数用于在二维数组的末尾追加一项,并返回追加后的数组
别名:
  • push
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
单行数组 Array 要追加的单行数组
返回值:
追加后的数组
Type
Object
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var newRow = [7, 8];
var result = Array2D.z追加一项(arr, newRow);
logjson(result);  //输出追加后的数组
//输出结果
[[1,2],
[3,4],
[5,6],
[7,8]]

push(arr, 单行数组) → {Object}

说明:
  • 这个函数用于在二维数组的末尾追加一项,并返回追加后的数组
别名:
  • z追加一项
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
单行数组 Array 要追加的单行数组
返回值:
追加后的数组
Type
Object
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var newRow = [7, 8];
var result = Array2D.push(arr, newRow);
logjson(result);  //输出追加后的数组
//输出结果
//[[1,2],
//[3,4],
//[5,6],
//[7,8]]

z随机一项(arr) → {Array}

说明:
  • 这个函数用于从二维数组中随机选择一项,并返回选择的项
别名:
  • random
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
选择的项
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var result = Array2D.z随机一项(arr);
logjson(result);   // 输出选择的项
//输出结果
//[[5,6]]

random(arr) → {Array}

说明:
  • 这个函数用于从二维数组中随机选择一项,并返回选择的项
别名:
  • z随机一项
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
选择的项
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var result = Array2D.random(arr);
logjson(result);   // 输出选择的项
//输出结果
[[3,4]]

z按范围遍历(arr, 范围, 条件回调函数) → {Array}

说明:
  • 这个函数用于按范围遍历二维数组,并返回遍历结果组成的数组
别名:
  • rangeForEach
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
范围 Array [行起, 列起, 行数, 列数],默认为[0, 0, Infinity, Infinity]
条件回调函数 function 用于执行每个元素的回调函数
返回值:
遍历结果组成的数组
Type
Array
例子
var arr = [
["A1", "B1", "C1", "D1", "E1", "F1"],
["A2", "B2", "C2", "D2", "E2", "F2"],
["A3", "B3", "C3", "D3", "E3", "F3"],
["A4", "B4", "C4", "D4", "E4", "F4"],
["A5", "B5", "C5", "D5", "E5", "F5"]];
// 遍历范围为前两行两列
Array2D.z按范围遍历(
arr,
[0, 0, 2, 2], //行,列,行数,列数 这里 代表 A1:B2这个区域
(item,i,j,arr)=>{//当前元素,行号,列号,原数组
console.log([item,i,j].toString())
});
//输出结果
A1,0,0
B1,0,1
A2,1,0
B2,1,1
//也可以使用原数组参数来直接对原数组进行修改:
Array2D.z按范围遍历(
arr,
[0, 0, 2, 2], //行,列,行数,列数 这里 代表 A1:B2这个区域
(item,i,j,arr)=>{//当前元素,行号,列号,原数组
arr[i][j]=item+' 修改';//对原数组局部区域修改
});
logjson(arr);  //输出数组
//输出结果
[["A1 修改","B1 修改","C1","D1","E1","F1"],
["A2 修改","B2 修改","C2","D2","E2","F2"],
["A3","B3","C3","D3","E3","F3"],
["A4","B4","C4","D4","E4","F4"],
["A5","B5","C5","D5","E5","F5"]]

rangeForEach(arr, 范围, 条件回调函数) → {Array}

说明:
  • 这个函数用于按范围遍历二维数组,并返回遍历结果组成的数组
别名:
  • z按范围遍历
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
范围 Array [行起, 列起, 行数, 列数],默认为[0, 0, Infinity, Infinity]
条件回调函数 function 用于执行每个元素的回调函数
返回值:
遍历结果组成的数组
Type
Array
例子
var arr = [
["A1", "B1", "C1", "D1", "E1", "F1"],
["A2", "B2", "C2", "D2", "E2", "F2"],
["A3", "B3", "C3", "D3", "E3", "F3"],
["A4", "B4", "C4", "D4", "E4", "F4"],
["A5", "B5", "C5", "D5", "E5", "F5"]];
// 遍历范围为前两行两列
Array2D.rangeForEach(
arr,
[0, 0, 2, 2], //行,列,行数,列数 这里 代表 A1:B2这个区域
(item,i,j,arr)=>{//当前元素,行号,列号,原数组
console.log([item,i,j].toString())
});
////输出结果
//A1,0,0
//B1,0,1
//A2,1,0
//B2,1,1
//也可以使用原数组参数来直接对原数组进行修改:
Array2D.rangeForEach(
arr,
[0, 0, 2, 2], //行,列,行数,列数 这里 代表 A1:B2这个区域
(item,i,j,arr)=>{//当前元素,行号,列号,原数组
arr[i][j]=item+' 修改';//对原数组局部区域修改
});
logjson(arr);  //输出数组
////输出结果
//[["A1 修改","B1 修改","C1","D1","E1","F1"],
//["A2 修改","B2 修改","C2","D2","E2","F2"],
//["A3","B3","C3","D3","E3","F3"],
//["A4","B4","C4","D4","E4","F4"],
//["A5","B5","C5","D5","E5","F5"]]

z局部映射(arr, 范围, 条件回调函数) → {Array}

说明:
  • 这个函数用于对二维数组的指定范围进行局部映射,并返回映射后的数组
别名:
  • rangeMap
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
范围 Array [行起, 列起, 行数, 列数]
条件回调函数 function 用于执行每个元素的回调函数
返回值:
映射后的数组
Type
Array
例子
var arr = [
["A1", "B1", "C1", "D1", "E1", "F1"],
["A2", "B2", "C2", "D2", "E2", "F2"],
["A3", "B3", "C3", "D3", "E3", "F3"],
["A4", "B4", "C4", "D4", "E4", "F4"],
["A5", "B5", "C5", "D5", "E5", "F5"]];
//3行2列 + 这个区域加**后缀
var result = Array2D.z局部映射(arr, [0, 0, 3, 2], x=>x+'**');
logjson(result);
//输出结果
[["A1**","B1**","C1","D1","E1","F1"],
["A2**","B2**","C2","D2","E2","F2"],
["A3**","B3**","C3","D3","E3","F3"],
["A4","B4","C4","D4","E4","F4"],
["A5","B5","C5","D5","E5","F5"]]

rangeMap(arr, 范围, 条件回调函数) → {Array}

说明:
  • 这个函数用于对二维数组的指定范围进行局部映射,并返回映射后的数组
别名:
  • z局部映射
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
范围 Array [行起, 列起, 行数, 列数]
条件回调函数 function 用于执行每个元素的回调函数
返回值:
映射后的数组
Type
Array
例子
var arr = [
["A1", "B1", "C1", "D1", "E1", "F1"],
["A2", "B2", "C2", "D2", "E2", "F2"],
["A3", "B3", "C3", "D3", "E3", "F3"],
["A4", "B4", "C4", "D4", "E4", "F4"],
["A5", "B5", "C5", "D5", "E5", "F5"]];
//3行2列 + 这个区域加**后缀
var result = Array2D.rangeMap(arr, [0, 0, 3, 2], x=>x+'**');
logjson(result);
//输出结果
[["A1**","B1**","C1","D1","E1","F1"],
["A2**","B2**","C2","D2","E2","F2"],
["A3**","B3**","C3","D3","E3","F3"],
["A4","B4","C4","D4","E4","F4"],
["A5","B5","C5","D5","E5","F5"]]

z矩阵操作(arr, 范围, 条件回调函数) → {Array}

说明:
  • 这个函数用于对二维数组的指定范围进行矩阵操作,并返回操作后的数组
别名:
  • rangeMarix
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
范围 Array [行起, 列起, 行数, 列数]
条件回调函数 function 用于执行每个元素的回调函数
返回值:
操作后的数组
Type
Array
例子
var arr = [[1, 2, 3], 
[4, 5, 6],
[7, 8, 9]];
var brr = [[1, 2, 3],
[4, 5, 6], 
[7, 8, 9]];
//2个一样大小的数组 元素相加得到一个结果数组
var result = Array2D.z矩阵操作(arr, [] , brr, (a,b)=>a+b);
//A数组中选取一个区域 与B数组运算 一般B数组传入一个和A数组选中的区域一样大小的区域    
//B数组的第2列与A数组的第2列进行计算
var result = Array2D.z矩阵操作(arr, [0,1,3,1] ,Array2D.selectCols(brr,'f2'), (a,b)=>a+b);
logjson(result);
//输出结果
[[1,4,3],
[4,10,6],
[7,16,9]]

rangeMarix(arr, 范围, 条件回调函数) → {Array}

说明:
  • 这个函数用于对二维数组的指定范围进行矩阵操作,并返回操作后的数组
别名:
  • z矩阵操作
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
范围 Array [行起, 列起, 行数, 列数]
条件回调函数 function 用于执行每个元素的回调函数
返回值:
操作后的数组
Type
Array
例子
var arr = [[1, 2, 3], 
[4, 5, 6],
[7, 8, 9]];
var brr = [[1, 2, 3],
[4, 5, 6], 
[7, 8, 9]];
//2个一样大小的数组 元素相加得到一个结果数组
var result = Array2D.rangeMarix(arr, [] , brr, (a,b)=>a+b);
//A数组中选取一个区域 与B数组运算 一般B数组传入一个和A数组选中的区域一样大小的区域    
//B数组的第2列与A数组的第2列进行计算
var result = Array2D.rangeMarix(arr, [0,1,3,1] ,Array2D.selectCols(brr,'f2'), (a,b)=>a+b);
logjson(result);
//输出结果
[[1,4,3],
[4,10,6],
[7,16,9]]

z按范围选择(arr, 范围) → {Array}

说明:
  • 这个函数用于按范围选择二维数组的部分元素,并返回选择后的数组
别名:
  • rangeSelect
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
范围 Array [行起, 列起, 行数, 列数]
返回值:
选择后的数组
Type
Array
例子
var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
var range = [0, 0, 2, 2]; // 选择范围为前两行两列
var result = Array2D.z按范围选择(arr, range);
logjson(result); // 输出选择后的数组
//输出结果
[[1,2],
[4,5]]

rangeSelect(arr, 范围) → {Array}

说明:
  • 这个函数用于按范围选择二维数组的部分元素,并返回选择后的数组
别名:
  • z按范围选择
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
范围 Array [行起, 列起, 行数, 列数]
返回值:
选择后的数组
Type
Array
例子
var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
var range = [0, 0, 2, 2]; // 选择范围为前两行两列
var result = Array2D.rangeSelect(arr, range);
logjson(result);  // 输出选择后的数组
//输出结果
[[1,2],
[4,5]]

z聚合(arr, 聚合回调函数, 种子初始值) → {Object}

说明:
  • 这个函数用于对二维数组进行聚合操作,并返回聚合结果对象
别名:
  • reduce
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
聚合回调函数 function 用于执行聚合操作的回调函数
种子初始值 * 聚合操作的种子初始值,默认为undefined
返回值:
聚合结果对象
Type
Object
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var aggregateCallback = (accumulator, current) => accumulator + current; // 对每个元素进行累加操作
var initialValue = 0; // 初始值为0
var result = Array2D.z聚合(arr, aggregateCallback, initialValue);
Console.log(result);  // 输出聚合结果对象
//输出结果
01,23,45,6

reduce(arr, 聚合回调函数, 种子初始值) → {Object}

说明:
  • 这个函数用于对二维数组进行聚合操作,并返回聚合结果对象
别名:
  • z聚合
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
聚合回调函数 function 用于执行聚合操作的回调函数
种子初始值 * 聚合操作的种子初始值,默认为undefined
返回值:
聚合结果对象
Type
Object
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var aggregateCallback = (accumulator, current) => accumulator + current; // 对每个元素进行累加操作
var initialValue = 0; // 初始值为0
var result = Array2D.reduce(arr, aggregateCallback, initialValue);
Console.log(result);  // 输出聚合结果对象
//输出结果
01,23,45,6

z倒序聚合(arr, 聚合回调函数, 种子初始值) → {Object}

说明:
  • 这个函数用于对二维数组进行倒序聚合操作,并返回聚合结果对象
别名:
  • reduceRight
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
聚合回调函数 function 用于执行聚合操作的回调函数
种子初始值 * 聚合操作的种子初始值,默认为undefined
返回值:
聚合结果对象
Type
Object
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var aggregateCallback = (accumulator, current) => accumulator + current; // 对每个元素进行累加操作
var initialValue = 0; // 初始值为0
var result = Array2D.z倒序聚合(arr, aggregateCallback, initialValue);
console.log(result); // 输出聚合结果对象
//输出结果
05,63,41,2

reduceRight(arr, 聚合回调函数, 种子初始值) → {Object}

说明:
  • 这个函数用于对二维数组进行倒序聚合操作,并返回聚合结果对象
别名:
  • z倒序聚合
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
聚合回调函数 function 用于执行聚合操作的回调函数
种子初始值 * 聚合操作的种子初始值,默认为undefined
返回值:
聚合结果对象
Type
Object
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var aggregateCallback = (accumulator, current) => accumulator + current; // 对每个元素进行累加操作
var initialValue = 0; // 初始值为0
var result = Array2D.reduceRight(arr, aggregateCallback, initialValue);
console.log(result); // 输出聚合结果对象
//输出结果
05,63,41,2

z重复N次(arr, 个数) → {Array}

说明:
  • 这个函数用于将二维数组重复N次,并返回重复后的结果数组
别名:
  • repeat
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
个数 number 重复的次数
返回值:
重复后的结果数组
Type
Array
例子
var arr = [[1, 2], [3, 4]];
var count = 3;
var result = Array2D.z重复N次(arr, count);
logjson(result); // 输出重复后的结果数组
//输出结果
[[1,2],
[3,4],
[1,2],
[3,4],
[1,2],
[3,4]]

repeat(arr, 个数) → {Array}

说明:
  • 这个函数用于将二维数组重复N次,并返回重复后的结果数组
别名:
  • z重复N次
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
个数 number 重复的次数
返回值:
重复后的结果数组
Type
Array
例子
var arr = [[1, 2], [3, 4]];
var result = Array2D.repeat(arr, 3);
logjson(result);  // 输出重复后的结果数组
//输出结果  
[[1,2],
[3,4],
[1,2],
[3,4],
[1,2],
[3,4]]

z结果(arr) → {Array}

说明:
  • 这个函数用于获取二维数组的结果部分(去除第一列)
别名:
  • res
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
结果部分的数组
Type
Array
例子
var arr = [[1, 'A'], [2, 'B'], [3, 'C']];
var result = Array2D.z结果(arr);
logjson(result); // 输出结果部分的数组
//输出结果
[[1,"A"],
[2,"B"],
[3,"C"]]

res(arr) → {Array}

说明:
  • 这个函数用于获取二维数组的结果部分(去除第一列)
别名:
  • z结果
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
结果部分的数组
Type
Array
例子
var arr = [[1, 'A'], [2, 'B'], [3, 'C']];
var result = asArray2D(arr).filter('f1>1').map('f1**2').res();
logjson(result);  // 输出结果部分的数组
//输出结果
[[4],
[9]]

z反转(arr) → {Array}

说明:
  • 这个函数用于对二维数组进行反转操作,并返回反转后的结果数组
别名:
  • reverse
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
反转后的结果数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var result = Array2D.z反转(arr);
logjson(result); // 输出反转后的结果数组
//输出结果
[[5,6],
[3,4],
[1,2]]

reverse(arr) → {Array}

说明:
  • 这个函数用于对二维数组进行反转操作,并返回反转后的结果数组
别名:
  • z反转
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
反转后的结果数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var result = Array2D.reverse(arr);
logjson(result); // 输出反转后的结果数组
//输出结果
[[5,6],
[3,4],
[1,2]]

z选择列(arr, 列号数组) → {Array}

说明:
  • 这个函数用于选择二维数组中指定的列,并返回选择后的结果数组 可以按首行表头选择
别名:
  • selectCols
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列号数组 Array 要选择的列的索引数组
返回值:
选择后的结果数组
Type
Array
例子
var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
var columnIndexes = [0, 2]; // 选择第一列和第三列
var result = Array2D.z选择列(arr, columnIndexes);
logjson(result);  // 输出选择后的结果数组
//输出结果
[[1,3],
[4,6],
[7,9]]
//下面是按表头
var arr=[['a','b','c'],
         [1,2,3],
         [4,5,6],
         [7,8,9]];
logjson($$.selectCols(arr,['c','b','a']));//按首行表头 错位选择
logjson($$.selectCols(arr,['x','z'],['x','y','z']));//按自定义表头 第2个数组为每列依次指定新的表头

selectCols(arr, 列号数组) → {Array}

说明:
  • 这个函数用于选择二维数组中指定的列,并返回选择后的结果数组
别名:
  • z选择列
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列号数组 Array 要选择的列的索引数组
返回值:
选择后的结果数组
Type
Array
例子
var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
var columnIndexes = [0, 2]; // 选择第一列和第三列
var result = Array2D.z选择列(arr, columnIndexes);
logjson(result);  // 输出选择后的结果数组
//输出结果
[[1,3],
[4,6],
[7,9]]
//下面是按表头
var arr=[['a','b','c'],
         [1,2,3],
         [4,5,6],
         [7,8,9]];
logjson($$.z选择列(arr,['c','b','a']));//按首行表头 错位选择
logjson($$.z选择列(arr,['x','z'],['x','y','z']));//按自定义表头 第2个数组为每列依次指定新的表头

z选择行(arr, 行号数组) → {Array}

说明:
  • 这个函数用于选择二维数组中指定的行,并返回选择后的结果数组
别名:
  • selectRows
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
行号数组 Array 要选择的行的索引数组
返回值:
选择后的结果数组
Type
Array
例子
var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
var rowIndexes = [0, 2]; // 选择第一行和第三行
var result = Array2D.z选择行(arr, rowIndexes);
logjson(result);  // 输出选择后的结果数组
//输出结果
[[1,2,3],
[7,8,9]]

selectRows(arr, 行号数组) → {Array}

说明:
  • 这个函数用于选择二维数组中指定的行,并返回选择后的结果数组
别名:
  • z选择行
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
行号数组 Array 要选择的行的索引数组
返回值:
选择后的结果数组
Type
Array
例子
var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
var rowIndexes = [0, 2]; // 选择第一行和第三行
var result = Array2D.selectRows(arr, rowIndexes);
logjson(result);  // 输出选择后的结果数组
//输出结果
[[1,2,3],
[7,8,9]]

z删除第一个(arr, 个数) → {Object}

说明:
  • 这个函数用于删除二维数组中的前N个元素,并返回删除后的结果数组
别名:
  • shift
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
个数 number 要删除的元素个数,默认为1
返回值:
删除后的结果数组
Type
Object
例子
var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
var count = 2; // 删除前两个元素
var result = Array2D.z删除第一个(arr, count);
logjson(result);
//输出结果
[[1,2,3],
[4,5,6]]

shift(arr, 个数) → {Object}

说明:
  • 这个函数用于删除二维数组中的前N个元素,并返回删除后的结果数组
别名:
  • z删除第一个
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
个数 number 要删除的元素个数,默认为1
返回值:
删除后的结果数组
Type
Object
例子
var arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];    
var result = Array2D.shift(arr, 2);
log("返回的是弹出的内容")
logjson(result);
//输出结果
返回的是弹出的内容
[[1,2,3],
[4,5,6]]
log("原数组被改变")
logjson(arr);//返回的是弹出的内容
//输出结果
原数组被改变
[[7,8,9]]

z随机打乱(arr) → {Array}

说明:
  • 这个函数用于随机打乱二维数组中的元素顺序,并返回打乱后的结果数组
别名:
  • shuffle
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
打乱后的结果数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var result = Array2D.z随机打乱(arr);
logjson(result);  // 输出打乱后的结果数组
//输出结果
[[5,6],
[3,4],
[1,2]]

shuffle(arr) → {Array}

说明:
  • 这个函数用于随机打乱二维数组中的元素顺序,并返回打乱后的结果数组
别名:
  • z随机打乱
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
打乱后的结果数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var result = Array2D.shuffle(arr);
logjson(result);  // 输出打乱后的结果数组
//输出结果
[[3,4],
[5,6],
[1,2]]

z跳过前N个(arr, 个数) → {Array}

说明:
  • 这个函数用于跳过二维数组中的前N个元素,并返回跳过后的结果数组
别名:
  • skip
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
个数 number 要跳过的元素个数
返回值:
跳过后的结果数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var count = 2; // 跳过前两个元素
var result = Array2D.z跳过前N个(arr, count);
logjson(result);  // 输出跳过后的结果数组
//输出结果
[[5,6]]

skip(arr, 个数) → {Array}

说明:
  • 这个函数用于跳过二维数组中的前N个元素,并返回跳过后的结果数组
别名:
  • z跳过前N个
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
个数 number 要跳过的元素个数
返回值:
跳过后的结果数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var count = 2; // 跳过前两个元素
var result = Array2D.skip(arr, count);
logjson(result);  // 输出跳过后的结果数组
//输出结果
[[5,6]]

z跳过前面连续不满足(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于跳过二维数组中前面连续不满足条件的元素,并返回跳过后的结果数组
别名:
  • skipUntil
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于判断元素是否满足条件的回调函数
返回值:
跳过后的结果数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var conditionCallback = (subArray) => subArray[0] > 2; // 判断子数组的第一个元素是否大于2
var result = Array2D.z跳过前面连续不满足(arr, conditionCallback);
logjson(result);  // 输出跳过后的结果数组
//输出结果
[[3,4],
[5,6]]

skipUntil(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于跳过二维数组中前面连续不满足条件的元素,并返回跳过后的结果数组
别名:
  • z跳过前面连续不满足
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于判断元素是否满足条件的回调函数
返回值:
跳过后的结果数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6],[[1, 2]]];
var result = Array2D.skipUntil(arr, row=>row[0]>3);
logjson(result);  // 输出跳过后的结果数组
//输出结果
[[5,6],
[[1,2]]]

z跳过前面连续满足(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于跳过二维数组中前面连续满足条件的元素,并返回跳过后的结果数组
别名:
  • skipWhile
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于判断元素是否满足条件的回调函数
返回值:
跳过后的结果数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var conditionCallback = (subArray) => subArray[0] > 2; // 判断子数组的第一个元素是否大于2
var result = Array2D.z跳过前面连续满足(arr, conditionCallback);
logjson(result);  // 输出跳过后的结果数组
//输出结果
[[1,2],
[3,4],
[5,6]]

skipWhile(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于跳过二维数组中前面连续满足条件的元素,并返回跳过后的结果数组
别名:
  • z跳过前面连续满足
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于判断元素是否满足条件的回调函数
返回值:
跳过后的结果数组
Type
Array
例子
var arr = [[3, 2], [4, 4], [5, 6],[1, 2],[4, 2]];
var conditionCallback = (subArray) => subArray[0] > 2; // 判断子数组的第一个元素是否大于2
var result = Array2D.skipWhile(arr, conditionCallback);
logjson(result);  // 输出跳过后的结果数组
//输出结果
[[1,2],
[4,2]]     

z行切片(arr, 位置, 个数) → {Array}

说明:
  • 这个函数用于对二维数组进行行切片操作,并返回切片后的结果数组
别名:
  • slice
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
位置 number 切片的起始位置
个数 number 切片的行数
返回值:
切片后的结果数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]];
var start = 1; // 切片起始位置
var count = 2; // 切片行数
var result = Array2D.z行切片(arr, start, count);
console.log(result); // 输出切片后的结果数组

slice(arr, 位置, 个数) → {Array}

说明:
  • 这个函数用于对二维数组进行行切片操作,并返回切片后的结果数组
别名:
  • z行切片
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
位置 number 切片的起始位置
个数 number 切片的行数
返回值:
切片后的结果数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]];
var result = Array2D.slice(arr, 1, 2);
logjson(result);    // 输出切片后的结果数组
//输出结果
[[3,4],
[5,6]]

z满足条件(arr, 条件回调函数) → {Boolean}

说明:
  • 这个函数用于判断二维数组中是否存在满足条件的元素
别名:
  • some
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于判断元素是否满足条件的回调函数
返回值:
是否存在满足条件的元素
Type
Boolean
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var conditionCallback = (subArray) => subArray[0] > 2; // 判断子数组的第一个元素是否大于2
var result = Array2D.z满足条件(arr, conditionCallback);
console.log(result); // 输出是否存在满足条件的元素
//输出结果
true

some(arr, 条件回调函数) → {Boolean}

说明:
  • 这个函数用于判断二维数组中是否存在满足条件的元素
别名:
  • z满足条件
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于判断元素是否满足条件的回调函数
返回值:
是否存在满足条件的元素
Type
Boolean
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var conditionCallback = (subArray) => subArray[0] > 2; // 判断子数组的第一个元素是否大于2
var result = Array2D.some(arr, conditionCallback);
console.log(result); // 输出是否存在满足条件的元素
//输出结果
true

z升序排序(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于对二维数组进行升序排序,并返回排序后的结果数组
别名:
  • sort
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于比较元素的回调函数
返回值:
排序后的结果数组
Type
Array
例子
var arr = [[3, 'C'], [1, 'A'], [2, 'B']];
var conditionCallback = (a, b) => a[0] - b[0]; // 按照子数组的第一个元素进行升序排序
var result = Array2D.z升序排序(arr, conditionCallback);
logjson(result);  // 输出排序后的结果数组
//输出结果
[[3,"C"],
[1,"A"],
[2,"B"]]

sort(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于对二维数组进行升序排序,并返回排序后的结果数组
别名:
  • z升序排序
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于比较元素的回调函数
返回值:
排序后的结果数组
Type
Array
例子
var arr = [[3, 'C'], [1, 'A'], [2, 'B']];
var conditionCallback = (a, b) => a[0] - b[0]; // 按照子数组的第一个元素进行升序排序
var result = Array2D.sort(arr, conditionCallback);
logjson(result);   // 输出排序后的结果数组
//输出结果
[[3,"C"],
[1,"A"],
[2,"B"]]

z按规则升序(arr, 列选择器, 表头行号) → {Array}

说明:
  • 这个函数用于对二维数组进行按规则升序排序,并返回排序后的结果数组
别名:
  • sortBy
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列选择器 function 用于选择排序列的回调函数
表头行号 Number 表头不参与排序 默认为0
返回值:
排序后的结果数组
Type
Array
例子
var arr = [[3, 'C'], [1, 'A'], [2, 'B']];
var columnSelector = (row) => row[0]; // 选择子数组的第一个元素作为排序列
var result = Array2D.z按规则升序(arr, columnSelector);
logjson(result);   // 输出排序后的结果数组
//输出结果
[[1,"A"],
[2,"B"],
[3,"C"]]

sortBy(arr, 列选择器, 表头行号) → {Array}

说明:
  • 这个函数用于对二维数组进行按规则升序排序,并返回排序后的结果数组
别名:
  • z按规则升序
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列选择器 function 用于选择排序列的回调函数
表头行号 Number 表头不参与排序 默认为0
返回值:
排序后的结果数组
Type
Array
例子
var arr = [[3, 'C'], [1, 'A'], [2, 'B']];
var columnSelector = (row) => row[0]; // 选择子数组的第一个元素作为排序列
var result = Array2D.sortBy(arr, columnSelector);
logjson(result);   // 输出排序后的结果数组
//输出结果
[[1,"A"],
[2,"B"],
[3,"C"]]

z按规则降序(arr, 列选择器) → {Array}

说明:
  • 这个函数用于对二维数组进行按规则降序排序,并返回排序后的结果数组
别名:
  • sortByDesc
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列选择器 function 用于选择排序列的回调函数
返回值:
排序后的结果数组
Type
Array
例子
var arr = [[3, 'C'], [1, 'A'], [2, 'B']];
var columnSelector = (row) => row[0]; // 选择子数组的第一个元素作为排序列
var result = Array2D.z按规则降序(arr, columnSelector);
logjson(result);  // 输出排序后的结果数组
//输出结果
[[3,"C"],
[2,"B"],
[1,"A"]]

sortByDesc(arr, 列选择器) → {Array}

说明:
  • 这个函数用于对二维数组进行按规则降序排序,并返回排序后的结果数组
别名:
  • z按规则降序
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列选择器 function 用于选择排序列的回调函数
返回值:
排序后的结果数组
Type
Array
例子
var arr = [[3, 'C'], [1, 'A'], [2, 'B']];
var columnSelector = (row) => row[0]; // 选择子数组的第一个元素作为排序列
var result = Array2D.sortByDesc(arr, columnSelector);
logjson(result);  // 输出排序后的结果数组
//输出结果
[[3,"C"],
[2,"B"],
[1,"A"]]

z降序排序(arr) → {Array}

说明:
  • 这个函数用于对二维数组进行降序排序,并返回排序后的结果数组
别名:
  • sortDesc
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
排序后的结果数组
Type
Array
例子
var arr = [[3, 'C'], [1, 'A'], [2, 'B']];
var result = Array2D.z降序排序(arr);
logjson(result);   // 输出排序后的结果数组
//输出结果
[[3,"C"],
[2,"B"],
[1,"A"]]

sortDesc(arr) → {Array}

说明:
  • 这个函数用于对二维数组进行降序排序,并返回排序后的结果数组
别名:
  • z降序排序
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
排序后的结果数组
Type
Array
例子
var arr = [[3, 'C'], [1, 'A'], [2, 'B']];
var result = Array2D.sortDesc(arr);
logjson(result);  // 输出排序后的结果数组
//输出结果
[[3,"C"],
[2,"B"],
[1,"A"]]

z自定义排序(arr, list) → {Array}

说明:
  • 自定义排序函数
别名:
  • sortByList
参数列表:
参数名称 参数类型 备注
arr Array 待排序的数组
list Array 排序列表
返回值:
排序后的数组
Type
Array
例子
var arr = [[3, 'C'], [1, 'A'], [2, 'B']];
var result = Array2D.z自定义排序(arr,0,[2,3,1]);

sortByList(arr, list) → {Array}

说明:
  • 根据列表排序函数
别名:
  • z自定义排序
参数列表:
参数名称 参数类型 备注
arr Array 待排序的数组
list Array 排序列表
返回值:
排序后的数组
Type
Array
例子
* var arr = [[3, 'C'], [1, 'A'], [2, 'B']];
var result = Array2D.sortByList(arr,0,[2,3,1]);

z多列排序(arr, cols) → {Array}

说明:
  • 多列排序函数
别名:
  • sortByCols
参数列表:
参数名称 参数类型 备注
arr Array 待排序的数组
cols String 排序列
返回值:
排序后的数组
Type
Array
例子
* var arr = [[3, 'C'], [1, 'A'], [2, 'B']];
var result = Array2D.z多列排序(arr,'f1+,f2-');//先按第2列降序 再按第1列升序

sortByCols(arr, cols) → {Array}

说明:
  • 根据多列排序函数
别名:
  • z多列排序
参数列表:
参数名称 参数类型 备注
arr Array 待排序的数组
cols String 排序列
返回值:
排序后的数组
Type
Array
例子
* var arr = [[3, 'C'], [1, 'A'], [2, 'B']];
var result = Array2D.sortByCols(arr,'f1+,f2-');//先按第2列降序 再按第1列升序

z行切片删除行(arr, 位置, 数量, 替换值) → {Array}

说明:
  • 这个函数用于删除二维数组中指定位置的行,并返回删除后的结果数组
别名:
  • splice
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
位置 number 要删除的行的位置
数量 number 要删除的行的数量
替换值 * 要替换删除行的值
返回值:
删除后的结果数组
Type
Array
例子
var arr = [[1, 'A'], [2, 'B'], [3, 'C'], [4, 'D']];
var position = 1;
var count = 2;
var replacement = [5, 'E'];
var result = Array2D.z行切片删除行(arr, position, count, replacement);
console.log(result); // 输出删除后的结果数组

splice(arr, 位置, 数量, 替换值) → {Array}

说明:
  • 这个函数用于删除二维数组中指定位置的行,并返回删除后的结果数组
别名:
  • z行切片删除行
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
位置 number 要删除的行的位置
数量 number 要删除的行的数量
替换值 * 要替换删除行的值
返回值:
删除后的结果数组
Type
Array
例子
var arr = [[1, 'A'], 
[2, 'B'],
[3, 'C'],
[4, 'D']];
var 开始行 = 1;
var 结束行 = 2;
var 原位替换 = [5, 'E'];
var result = Array2D.splice(arr, 开始行, 结束行, 原位替换);
logjson(result);
//输出结果
[[2,"B"],
[3,"C"]]
log('替换是替换到原数组')
logjson(arr);
//输出结果
替换是替换到原数组
[[1,"A"],
[5,"E"],
[4,"D"]]

z求和(arr, 列选择函数) → {number}

说明:
  • 这个函数用于对二维数组中的指定列进行求和,并返回求和结果
别名:
  • sum
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列选择函数 function 用于选择要求和的列的回调函数
返回值:
求和结果
Type
number
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var columnSelector = (row) => row[1]; // 选择第二列进行求和
var result = Array2D.z求和(arr, columnSelector);
console.log(result); // 输出求和结果
//输出结果
12

sum(arr, 列选择函数) → {number}

说明:
  • 这个函数用于对二维数组中的指定列进行求和,并返回求和结果
别名:
  • z求和
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
列选择函数 function 用于选择要求和的列的回调函数
返回值:
求和结果
Type
number
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var columnSelector = (row) => row[1]; // 选择第二列进行求和
var result = Array2D.sum(arr, columnSelector);
console.log(result); // 输出求和结果
//输出结果
12

z超级查找(arr, brr, 左表列选择器, 右表列选择器, 双表结果选择器) → {Array}

说明:
  • 这个函数用于对两个二维数组进行超级查找操作,并返回查找结果数组
别名:
  • superLookup
参数列表:
参数名称 参数类型 备注
arr Array 左表二维数组
brr Array 右表二维数组
左表列选择器 function 用于选择左表中要查找的列的回调函数
右表列选择器 function 用于选择右表中要查找的列的回调函数
双表结果选择器 function 查找结果的选择器的回调函数,默认为(a, b) => a.concat(b)
返回值:
查找结果数组
Type
Array
例子
const arr = [[1, 'A'], [2, 'B'], [3, 'C']];
const brr = [[2, 'X'], [3, 'Y'], [4, 'Z']];
const leftKeySelector = (row) => row[0]; // 选择左表的第一列作为查找列
const rightKeySelector = (row) => row[0]; // 选择右表的第一列作为查找列
const resultSelector = (a, b) => a.concat(b); // 查找结果的选择器
const result = Array2D.z超级查找(arr, brr, leftKeySelector, rightKeySelector, resultSelector);
logjson(result);  // 输出查找结果数组
//输出结果
[[1,"A","",""],
[2,"B",2,"X"],
[3,"C",3,"Y"]]

superLookup(arr, brr, 左表列选择器, 右表列选择器, 双表结果选择器) → {Array}

说明:
  • 这个函数用于对两个二维数组进行超级查找操作,并返回查找结果数组
别名:
  • z超级查找
参数列表:
参数名称 参数类型 备注
arr Array 左表二维数组
brr Array 右表二维数组
左表列选择器 function 用于选择左表中要查找的列的回调函数
右表列选择器 function 用于选择右表中要查找的列的回调函数
双表结果选择器 function 查找结果的选择器的回调函数,默认为(a, b) => a.concat(b)
返回值:
查找结果数组
Type
Array
例子
const arr = [[1, 'A'], [2, 'B'], [3, 'C']];
const brr = [[2, 'X'], [3, 'Y'], [4, 'Z']];
const leftKeySelector = (row) => row[0]; // 选择左表的第一列作为查找列
const rightKeySelector = (row) => row[0]; // 选择右表的第一列作为查找列
const resultSelector = (a, b) => a.concat(b); // 查找结果的选择器
const result = Array2D.superLookup(arr, brr, leftKeySelector, rightKeySelector, resultSelector);
logjson(result);  // 输出查找结果数组
//输出结果
[[1,"A","",""],
[2,"B",2,"X"],
[3,"C",3,"Y"]]

z取前N个(arr, 个数) → {Array}

说明:
  • 这个函数用于从二维数组中取前N个元素,并返回取到的结果数组
别名:
  • take
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
个数 number 要取的元素个数
返回值:
取到的结果数组
Type
Array
例子
const arr = [[1, 2], [3, 4], [5, 6], [7, 8]];
const count = 2;
const result = Array2D.z取前N个(arr, count);
logjson(result);  // 输出取到的结果数组
//输出结果
[[1,2],
[3,4]]

take(arr, 个数) → {Array}

说明:
  • 这个函数用于从二维数组中取前N个元素,并返回取到的结果数组
别名:
  • z取前N个
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
个数 number 要取的元素个数
返回值:
取到的结果数组
Type
Array
例子
const arr = [[1, 2], [3, 4], [5, 6], [7, 8]];
const count = 2;
const result = Array2D.take(arr, count);
logjson(result);  
//输出结果
[[1,2],
[3,4]]

z取前面连续不满足(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于从二维数组中取前面连续不满足条件的元素,并返回取到的结果数组
别名:
  • takeUntil
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于判断元素是否满足条件的回调函数
返回值:
取到的结果数组
Type
Array
例子
const arr = [[1, 2], [3, 4], [5, 6], [7, 8]];
const conditionCallback = (element) => element[0] > 3; // 判断元素的第一个值是否大于3
const result = Array2D.z取前面连续不满足(arr, conditionCallback);
logjson(result);  // 输出取到的结果数组
//输出结果
[[1,2],
[3,4]]

takeUntil(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于从二维数组中取前面连续不满足条件的元素,并返回取到的结果数组
别名:
  • z取前面连续不满足
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于判断元素是否满足条件的回调函数
返回值:
取到的结果数组
Type
Array
例子
const arr = [[1, 2], [3, 4], [5, 6], [7, 8]];
const conditionCallback = (element) => element[0] > 3; // 判断元素的第一个值是否大于3
const result = Array2D.takeUntil(arr, conditionCallback);
logjson(result);  // 输出取到的结果数组
//输出结果
[[1,2],
[3,4]]

z取前面连续满足(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于从二维数组中取前面连续满足条件的元素,并返回取到的结果数组
别名:
  • takeWhile
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于判断元素是否满足条件的回调函数
返回值:
取到的结果数组
Type
Array
例子
const arr = [[1, 2], [3, 4], [5, 6], [7, 8]];
const conditionCallback = (element) => element[0] > 3; // 判断元素的第一个值是否大于3
const result = Array2D.z取前面连续满足(arr, conditionCallback);
console.log(result); // 输出取到的结果数组

takeWhile(arr, 条件回调函数) → {Array}

说明:
  • 这个函数用于从二维数组中取前面连续满足条件的元素,并返回取到的结果数组
别名:
  • z取前面连续满足
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
条件回调函数 function 用于判断元素是否满足条件的回调函数
返回值:
取到的结果数组
Type
Array
例子
const arr = [[1, 2], [3, 4], [5, 6], [7, 8]];
const conditionCallback = (element) => element[0] > 3; // 判断元素的第一个值是否大于3
const result = Array2D.takeWhile(arr, conditionCallback);
console.log(result); // 输出取到的结果数组

z多次遍历执行(arr, 个数, 条件回调函数) → {*}

说明:
  • 这个函数用于多次遍历执行二维数组的每个子数组,并返回执行结果
别名:
  • times
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
个数 number 遍历执行的次数
条件回调函数 function 用于执行每个子数组的回调函数
返回值:
执行结果
Type
*
例子
const arr = [[1, 2], [3, 4], [5, 6]];
const count = 3;
const conditionCallback = (subArray) => subArray[0] * 2; // 对每个子数组的第一个元素进行乘以2的操作
const result = Array2D.z多次遍历执行(arr, count, conditionCallback);
console.log(result); // 输出执行结果

times(arr, 个数, 条件回调函数) → {*}

说明:
  • 这个函数用于多次遍历执行二维数组的每个子数组,并返回执行结果
别名:
  • z多次遍历执行
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
个数 number 遍历执行的次数
条件回调函数 function 用于执行每个子数组的回调函数
返回值:
执行结果
Type
*
例子
const arr = [[1, 2], [3, 4], [5, 6]];
const count = 3;
const conditionCallback = (subArray) => subArray[0] * 2; // 对每个子数组的第一个元素进行乘以2的操作
const result = Array2D.times(arr, count, conditionCallback);
console.log(result); // 输出执行结果

z转数组(arr) → {Array}

说明:
  • 这个函数用于将二维数组转换为数组,并返回转换后的结果
别名:
  • toArray
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
转换后的结果数组
Type
Array
例子
const arr = [[1, 2], [3, 4], [5, 6]];
const result = Array2D.z转数组(arr);
logjson(result);  // 输出转换后的结果数组
//输出结果
[[1,2],
[3,4],
[5,6]]

toArray(arr) → {Array}

说明:
  • 这个函数用于将二维数组转换为数组,并返回转换后的结果
别名:
  • z转数组
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
转换后的结果数组
Type
Array

z转JSON字符串(arr) → {String}

说明:
  • 这个函数用于将二维数组转换为JSON字符串,并返回转换后的结果
别名:
  • toJson
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
转换后的结果字符串
Type
String
例子
const arr = [[1, 2], [3, 4], [5, 6]];
const result = Array2D.z转JSON字符串(arr);
console.log(result); // 输出转换后的结果字符串
//输出结果
[[1,2],
[3,4],
[5,6]]

toJson(arr) → {String}

说明:
  • 这个函数用于将二维数组转换为JSON字符串,并返回转换后的结果
别名:
  • z转JSON字符串
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
转换后的结果字符串
Type
String
例子
const arr = [[1, 2], [3, 4], [5, 6]];
const result = Array2D.toJson(arr);
console.log(result); // 输出转换后的结果字符串
//输出结果
[[1,2],
[3,4],
[5,6]]

z转字符串(arr) → {String}

说明:
  • 这个函数用于将二维数组转换为字符串,并返回转换后的结果
别名:
  • toString
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
转换后的结果字符串
Type
String
例子
const arr = [[1, 2], [3, 4], [5, 6]];
const result = Array2D.z转字符串(arr);
console.log(result); // 输出转换后的结果字符串
//输出结果
1,2,3,4,5,6

toString(arr) → {String}

说明:
  • 这个函数用于将二维数组转换为字符串,并返回转换后的结果
别名:
  • z转字符串
参数列表:
参数名称 参数类型 备注
arr Array 二维数组
返回值:
转换后的结果字符串
Type
String
例子
const arr = [[1, 2], [3, 4], [5, 6]];
const result = Array2D.toString(arr);
console.log(result); // 输出转换后的结果字符串
//输出结果
1,2,3,4,5,6

z去重并集(arr, brr) → {Array}

说明:
  • 这个函数用于对两个二维数组进行去重并集操作,并返回操作后的结果数组
别名:
  • union
参数列表:
参数名称 参数类型 备注
arr Array 第一个二维数组
brr Array 第二个二维数组
返回值:
去重并集操作后的结果数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var brr = [[3, 4], [1, 8], [9, 10]];
//二维数组上下合并后 按整行去重
var result = Array2D.z去重并集(arr, brr);
logjson(result);
//输出结果
[[1,2],
[3,4],
[5,6],
[1,8],
[9,10]]
//按首列去重
var result = Array2D.z去重并集(arr, brr,x=>x[0]);
logjson(result);
//输出结果
[[1,2],
[3,4],
[5,6],
[9,10]]

union(arr, brr) → {Array}

说明:
  • 这个函数用于对两个二维数组进行去重并集操作,并返回操作后的结果数组
别名:
  • z去重并集
参数列表:
参数名称 参数类型 备注
arr Array 第一个二维数组
brr Array 第二个二维数组
返回值:
去重并集操作后的结果数组
Type
Array
例子
var arr = [[1, 2], [3, 4], [5, 6]];
var brr = [[3, 4], [1, 8], [9, 10]];
//二维数组上下合并后 按整行去重
var result = Array2D.union(arr, brr);
logjson(result);
//输出结果
[[1,2],
[3,4],
[5,6],
[1,8],
[9,10]]
//按首列去重
var result = Array2D.union(arr, brr,x=>x[0]);
logjson(result);
//输出结果
[[1,2],
[3,4],
[5,6],
[9,10]]

z左右连接(arr, brr) → {Array}

说明:
  • 这个函数用于对两个二维数组进行左右连接操作,并返回操作后的结果数组
别名:
  • zip
参数列表:
参数名称 参数类型 备注
arr Array 左表二维数组
brr Array 右表二维数组
返回值:
左右连接操作后的结果数组
Type
Array
例子
const arr = [[1, 'A'], [2, 'B'], [3, 'C']];
const brr = [[2, 'X'], [3, 'Y'], [4, 'Z']];
const result = Array2D.z左右连接(arr, brr);
logjson(result);  // 输出左右连接操作后的结果数组
//输出结果
[[1,"A",2,"X"],
[2,"B",3,"Y"],
[3,"C",4,"Z"]]

zip(arr, brr) → {Array}

说明:
  • 这个函数用于对两个二维数组进行左右连接操作,并返回操作后的结果数组
别名:
  • z左右连接
参数列表:
参数名称 参数类型 备注
arr Array 左表二维数组
brr Array 右表二维数组
返回值:
左右连接操作后的结果数组
Type
Array
例子
const arr = [[1, 'A'], [2, 'B'], [3, 'C']];
const brr = [[2, 'X'], [3, 'Y'], [4, 'Z']];
const result = Array2D.zip(arr, brr);
logjson(result);   // 输出左右连接操作后的结果数组
//输出结果
[[1,"A",2,"X"],
[2,"B",3,"Y"],
[3,"C",4,"Z"]]