# all
- 描述
- 当提供的断言函数对集合中的所有元素都返回
true
时,就返回true
,否则返回false
- 当提供的断言函数对集合中的所有元素都返回
- 提示
- 使用
Array.prototype.every()
来测试集合中的所有元素在fn
中是否返回true
- 第二个参数为
fn
,可使用Boolean
作为默认值
- 使用
- 代码
const all = (arr, fn = Boolean) => arr.every(fn);
- 示例
- 检测数组中的每一个元素是否都满足条件:
// true
console.log(all([1, 2, 3]));
// false
console.log(all([1, 2, 3, 4], x => x > 2));
# allEqual
- 描述
- 检测数组中的元素是否都相等
- 提示
- 使用
Array.prototype.every()
检测数组中的所有元素是否和第一个元素相等
- 使用
- 代码
const allEqual = arr => arr.every(val => val === arr[0]);
- 示例
- 检测数组中的元素是否都相等
// false
console.log(allEqual([1, 2, 1]));
// true
console.log(allEqual([1, 1, 1, 1]));
# any
- 描述
- 如果提供的函数对集合中的任意一个元素返回
true
,那么就返回true
,否则返回false
- 如果提供的函数对集合中的任意一个元素返回
- 提示
- 使用
Array.prototype.some()
进行检测,如果fn
对集合中的任意元素返回true
,那么就返回true
- 第二个参数为
fn
,默认值为Boolean
- 使用
- 代码
const any = (arr, fn = Boolean) => arr.some(fn);
- 示例
检测数组中的元素是否有满足条件的// false
console.log(any([1, 2, 1], x => x > 5));
// true
console.log(any([1, 2, 3, 10], x => x > 5));
# arrayToCSV
- 描述
- 把一个二维数组转换为使用逗号分隔符(CSV)的字符串
- 提示
- 使用
Array.prototype.map()
和Array.prototype.join(delimiter)
把一维数组转换为使用逗号分割的字符串 - 使用
Array.prototype.join('\n')
将二维数组中的行组合为 CSV 字符串,每一行都使用换行符作为分割 - 第二个参数
delimiter
可省略,默认值为,
- 使用
- 代码
const arrayToCSV = (arr, delimiter = ',') => arr.map(
// 遍历每层数组
v => v.map(
// 遍历每一个元素
x => isNaN(x) ? `"${x.replace(/"/g, '""')}"` : x
).join(delimiter)
).join('\n');
- 示例
- 将一个二维数组按照指定的规则转换为字符串
// 打印 "a","b"\n"c","d"
console.log(arrayToCSV([
['a', 'b'],
['c', 'd']
]));
// 打印 "a";"b"\n"c";"d"
console.log(arrayToCSV([
['a', 'b'],
['c', 'd']
], ';'));
// 打印 "a","""b"" great"\n"c",3.1415926
console.log(arrayToCSV([
['a', '"b" great'],
['c', 3.1415926]
]));