数组与字符串常用方法

Author Avatar
Roojay 9月 15, 2017
  • 在其它设备中阅读本文章

split() 将字符串分割成数组

str.split(‘分隔符’, 返回数组最大的长度)

根据分隔符(字符串或者正则表达式)将一个字符串分割成数组。

const str = 'wind rain fire';
const arr = str.split(' ');
console.log(arr); // arr['wind', 'rain', 'fire']

join() 数组连接成一个字符串

arr.join(‘分隔符’)

分隔符默认值为,
将数组(或一个类数组对象)的所有元素使用分隔符连接成一个新字符串。

const arr = ['wind', 'rain', 'fire'];
const str = arr.join('+');
console.log(str); // wind+rain+fire

字符串快速排序

const strSort = str => str.split('').sort().join('');
strSort(str);

map() 创建新数组

arr.map(callback)

创建一个新数组,新数组的每个元素都是 callback 函数的结果。

const arr = [1, 2, 3];
const newArr = arr.map(num => num * 2);
console.log(newArr); // newArr[2, 4, 6]

数组取最大最小值

Math.max.apply(null, arr);  // 取数组最大值
Math.min.apply(null, arr);  // 取数组最小值

ES6 扩展 rest 不定参数写法:

Math.max(...arr);  // 取数组最大值
Math.min(...arr);  // 取数组最小值

filter() 数组中取通过测试的值

filter(fn)

创建一个新数组, 其包含通过 fn 函数测试返回值为 true 的所有元素。

let [...arr] = [1, 2, 4, 7, 6];

const isOdd = num => num % 2;

let odd = arr.filter(isOdd); // odd is [1, 7]

slice() 取一部分数组

slice(start, end)

  • start, end 数组下标

返回一个从 start 到 end(不包括 end)选择的数组的一部分浅拷贝到一个新数组对象。原始数组不会被修改。

let arr = ['a', 'b', 'c', 'd'];
let arr13 = arr.slice(1, 3);
console.log(arr); // ['a', 'b', 'c', 'd']
console.log(arr13); // ['b', 'c']

如果参数为负数,例如start = -3, end = -1,就表示倒数第三位到倒数第一位,不包括

reduce() 数组求和

let arr = [1, 3, 5];
let sumArr = arr.reduce((sum, value) => sum + value, 0);
// sumArr is 9.

sum 上一次调用回调返回的值,或者是提供的初始值 0;
num 数组中正在处理的元素;
0 可选项,其值用于第一次调用 callback 的第一个参数 sum。如果没有设置初始值,则将数组中的第一个元素作为初始值。空数组调用 reduce 时没有设置初始值将会报错。

repeat()

str.repeat(n)

创建 n 个 str 的副本,将其连接在一起返回一个新的字符串。

'ha'.repeat(3); // 'hahaha'
'ha'.repeat(2); // 'haha'

match() 字符串中正则取值

str.match(regx)

方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,返回匹配值构成的数组。

The MIT License (MIT)
Copyright (c) 2019, Roojay.

本文链接:https://roojay.com/pages/4b02d38a/