数组及字符串的常用JS方法

数组及字符串的常用JS方法


一、修改原数组

1.数组的常用方法(修改原数组):对数组的开头和结尾的增加和删除 push() pop() unshift() shift()

let arr = [“a”, “b”, “c”];

向数组末尾添加一个或多个元素,返回添加后数组的长度,修改原数组。 push()
arr.push(“d”, “e”);    arr为:[“a”, “b”, “c”,“d”,“e”]; 返回值为:5;

删除数组最后一个元素,将被删除的元素作为返回值,修改原数组。 pop()
arr.pop();    arr为:[“a”, “b”]; 返回值为:“c”;

向数组开头添加一个或多个,返回添加后的数组长度,修改原数组。 unshift()
arr.unshift(“0”, “1”);    arr为:[‘0’, ‘1’, ‘a’, ‘b’, ‘c’]; 返回值为:5;

删除数组第一个元素,返回删除的元素,修改原数组。 shift()
arr.shift();    arr为:[‘b’, ‘c’]; 返回值为:“a”;


2.splice()(修改原数组):对数组的任意位置的增加和删除

let arr = [“a”, “b”, “c”];

1.删除任意位置数组,返回删除的数组,修改原数组
arr.splice(1, 1);
第一个参数是删除的开始索引位置(包括自己),第二个参数是要删除的个数
arr为:[“a”, “c”]; 返回值为:“b”;

2.插入任意位置,返回空数组,修改原数组
arr.splice(1, 0, 4, 6);
第一个参数为:插入开始索引位置(包括自己),第二个参数固定值为0:表示仅插入,第三个参数以及后面的参数为:需要插入的元素
arr为:[“a”, 4, 6, “b”, “c”]; 返回值为:[];

3.替换任意位置数组,返回被替换的数组,修改原数组
arr.splice(1, 1, "haha", 666);
第一个参数为:开始替换的索引位置(包括自己),第二个参数为:要替换的元素个数,第三个参数以及后面的参数为:需要替换的元素
arr为:[“a”, “haha”, 666, “c”]; 返回值为:“b”;


3.sort()(会修改原数组):数组排序,返回排序后的当前数组

let arr = [3, 4, 2, 10];

从小到大排序
arr.sort((a, b) => a - b);    myList.sort((a, b) => a.age - b.age)
arr为:[2, 3, 4, 10];   返回值为:[2, 3, 4, 10];

从大到小排序
arr.sort((a, b) => b - a);    myList.sort((a, b) => b.age - a.age)
arr为:[10, 4, 3, 2];   返回值为:[10, 4, 3, 2];


4.reverse()(会修改原数组):颠倒数组,返回替换后的数组

var fruits = [“Banana”, “Orange”, “Apple”, “Mango”];
fruits.reverse();
fruits输出为:
Mango,Apple,Orange,Banana


5.fill()(会修改原数组):填充或替换,返回替换后的数组 ,会改变原数组

let arr = [“一”, “二”, “三”, “四”, “五”];

填充所有:
arr.fill(“A”);
arr为:[‘A’, ‘A’, ‘A’, ‘A’, ‘A’]   返回值为:[‘A’, ‘A’, ‘A’, ‘A’, ‘A’]

替换索引 1(包括1) 到 索引4(不包括4) 之间的数
arr.fill(“A”, 1, 4);
arr为:[‘一’, ‘A’, ‘A’, ‘A’, ‘五’]   返回值为:[‘一’, ‘A’, ‘A’, ‘A’, ‘五’]


6.copyWithin()(会修改原数组):数组内部将指定位置的元素复制到其他位置,返回当前数组

let num = [1, 2, 3, 4, 8, 9, 10];

从索引3位置(包括3)往后的所有数值,替换从索引0(包括0)位置往后的对应数值
num.copyWithin(0, 3);
num为:[4, 8, 9, 10, 8, 9, 10];   返回值为:[4, 8, 9, 10, 8, 9, 10];





二、不改变原数组

1.indexOf()、lastIndexOf()、includes()(不会修改原数组):检查数组是否包某个值

let arr = [“a”, “b”, “c”];

从前往后检测arr数组是否含有'd',若有则返回其索引,若无则返回 -1
let ishas = arr.indexOf(“b”);
ishas为:1 ;

从后往前检测,从数组的索引为 1 的位置开始往后检测
let ishas = arr.lastIndexOf(“c”, 1);
ishas为:-1 ;

从前往后检测arr数组是否含有'd',若有则返回true,若无则返回 false
let ishas = arr.includes(“b”);
ishas为 true ;


2.toString()、toLocaleString()、join()将数组转换成字符串,不改变原数组

let a = [1, 2, 3, null, , “菜鸟”];

1.返回以逗号隔开的字符串 toString():一个一个转换 或 toLocaleString():整体转换
let b = a.toString(); 或 let b = a.toLocaleString();
b为:‘1,2,3,菜鸟’ , a不变
注意:
当数字是四位数及以上时,有区别
当目标是标准时间格式时,有区别

2.参数作为数组值之间的分隔符 join()
let b = a.join(“@”);
b为:“1@2@3@@@菜鸟” , a不变
注意:
如果参数为undefined或者不传参,则默认以逗号分隔开。
共同点:当数组中某一项为null或者undefined时,则这一项都以空字符串的方式被转出


3.slice()(不改变原数组):数组截取,提取数组中的指定位置的一个或多个元素,返回一个新数组,不改变原数组

let a = [1, 2, 3, , “菜鸟”, “大佬”];

选取索引为 1(包括1) 及 之后的所有元素,返回选取后的数组
let b = a.slice(1);
b为:[2, 3, empty, ‘菜鸟’, ‘大佬’]

选取索引为 1(包括1) 及 索引为 4(包括4) 之间的元素,返回选取后的数组
let b = a.splice(1, 4);
b为:[2, 3, empty, ‘菜鸟’]


4.concat()(不改变原数组):数组的合并

let a = [1, 2, 3, “小白”];
let b = [“js”, “vue”];

1.把 a 数组和 b 数组合并
let hebin = a.concat(b);
hebin为:[1, 2, 3, ‘小白’, ‘js’, ‘vue’]

2.把 b 数组和 a 数组合并
let hebin = b.concat(a);
hebin为:[‘js’, ‘vue’, 1, 2, 3, ‘小白’]


5.技巧:将数组转换成对象

  let arr = ["username=bobi", "password=123"];

  let obj = {};
  for (let i = 0; i < arr.length; i++) {
    var arg = arr[i].split("=");
    obj[arg[0]] = arg[1];
  }
obj为:{username: 'bobi', password: '123'}

6.技巧:将对象转换成数组

  let obj = { name:'张三' , age:'18' };

  let arr = [];
  for( let key in obj ) {
     arr.push( {
           name: key,
           age: obj[ key ]
     })
  }
arr为:[{ name:'张三' , age:'18' }]



转换为数组

1.Array.of():将任意数组类型,转换成数组

console.log(Array.of(3, 11, 20, [1, 2, 3], { id: 1 }));
输出:[3, 11, 20, Array(3), {…}]


2.Array.from():将数组型对象转换成数组

let obj = { 0: “菜鸟”, 1: “18”, length: 2 };

let objArr = Array.from(obj);
objArr为:[‘菜鸟’, ‘18’]

使用:
let objArr =Array.from(obj, (item) => {
return item + “@”;
});
objArr为:[‘菜鸟@’, ‘18@’]




类型判断

1.typeof 变量 (如果判断 null、Object、Array 则输出: object)

2.object.prototype.toString.call() (全部类型都能区分) 返回string类型:“[object Array]”

3.a instanceof Array (只能判断某对象是否存在于目标对象的原型链上)

4.instanceof、isArray检查一个元素是否为数组

let a = new Array();

console.log(a instanceof Array); 输出:true
console.log(Array.isArray(a)); 输出:true




字符串的方法

1.split()(不会修改原字符串):字符串截断为数组,返回一个处理后的数组

let url = “username=zhanshan”;

传入截断的依据
let arrs = url.split(“=”);
arrs为:[‘username’, ‘zhanshan’] ;

扩展:字符串转换成数组

  • let arrs = […url]
  • let arrs = url.split(“”);

2.search() (不会修改原字符串):检查字符串是否包含某个值,若有则返回索引,若无则返回-1

let str = “abc1def”;

一般检索:
str.search(“1”)
返回值为number类型:3

忽略大小写检索:
str.search(/abc/i)
返回值为number类型:0

正则检索(从一段字符串中收集特定规则的字符和字符串):
let reg = new RegExp(this.keyWord, “i”);
return q.name.match(reg);


3.substring()(不改变原字符串):字符串截取,返回修改后字符串,不改变原字符串

let str = “?abcdef”;

获取字符串索引为 1 (包括1) 及 之后的所有的字符串
let new_str = str.substring(1);
new_str为:“abcdef”;

获取字符串索引为 1 (包括1) 及 索引为 3 (不包括3) 之间的字符串
let new_str = str.substring(1, 3);
new_str为:“ab”;


4.padStart(),padEnd() (不改变原字符串):字符串补全(时间),返回补充后的字符串

‘x’.padStart(5, 'ab') // ‘ababx’
‘x’.padStart(4, 'ab') // ‘abax’
‘x’.padEnd(5, 'ab') // ‘xabab’
x’.padEnd(4, 'ab') // ‘xaba’

注意:
1.如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。
2.如果省略第二个参数,默认使用空格补全长度。


5.replace()(不会修改原字符串):字符串替换,返回修改后的字符串

let str = ‘我是中古人’;
let xgstr = str.replace(‘中古’,‘中国’);     注:找到第一个就只替换第一个
xgstr为:我是中国人

全局替换:忽略大小写
let str = “Mr Blue has a blue house and a blue car”;
let result = str.replace(/blue/gi, “red”);
输出结果:Mr red has a red house and a red car


6.repeat(number) (不会修改原字符串):字符串复制,返回复制后的字符串

let str = “abc”;

重复两遍后返回新字符串:
str.repeat(2);
输出结果:“abcabc”




其他

toUpperCase() (不改变原字符串):将字符串统一转成大写,返回转换后的字符串

toLowerCase() (不改变原字符串):将字符串统一转成小写,返回转换后的字符串

trim() (不改变原字符串):去除两端空格




常用的函数处理数据方法:

1.Math.max( …arr ) (不改变原数组):获得数组中最大的数值

2.Math.ceil(5/3) (不改变原数字):向上取整 输出:2

3.Math.floor(1.6) (不改变原数字):向下取整 输出:1

4.(3.14159).toFixed(2) (不改变原数字):四舍五入,保留2位小数 输出:3.14

5.Math.sqrt(9) (不改变原数字):取平方根 输出:3

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中,数组字符串都是常见的数据类型,它们都有一些方法来操作它们。下面是它们常用方法的对比: 1. 长度 数组:使用 `length` 属性返回数组中元素的数量。 ``` let arr = [1, 2, 3, 4, 5]; console.log(arr.length); // 5 ``` 字符串:使用 `length` 属性返回字符串的长度。 ``` let str = "Hello"; console.log(str.length); // 5 ``` 2. 截取 数组:使用 `slice()` 方法截取数组的一部分,并返回一个新的数组。 ``` let arr = [1, 2, 3, 4, 5]; let newArr = arr.slice(1, 3); console.log(newArr); // [2, 3] ``` 字符串:使用 `substring()` 或 `substr()` 方法截取字符串的一部分,并返回一个新的字符串。 ``` let str = "Hello, World!"; let newStr = str.substring(0, 5); console.log(newStr); // "Hello" let newStr2 = str.substr(0, 5); console.log(newStr2); // "Hello" ``` 3. 拼接 数组:使用 `concat()` 方法将多个数组合并成一个,并返回一个新的数组。 ``` let arr1 = [1, 2]; let arr2 = [3, 4]; let newArr = arr1.concat(arr2); console.log(newArr); // [1, 2, 3, 4] ``` 字符串:使用 `concat()` 方法将多个字符串合并成一个,并返回一个新的字符串。 ``` let str1 = "Hello, "; let str2 = "World!"; let newStr = str1.concat(str2); console.log(newStr); // "Hello, World!" ``` 4. 查找 数组:使用 `indexOf()` 或 `lastIndexOf()` 方法查找数组中指定元素的位置。 ``` let arr = [1, 2, 3, 2, 1]; console.log(arr.indexOf(2)); // 1 console.log(arr.lastIndexOf(2)); // 3 ``` 字符串:使用 `indexOf()` 或 `lastIndexOf()` 方法查找字符串中指定子串的位置。 ``` let str = "Hello, World!"; console.log(str.indexOf("o")); // 4 console.log(str.lastIndexOf("o")); // 8 ``` 5. 替换 数组:使用 `splice()` 方法替换数组中的元素。 ``` let arr = [1, 2, 3, 4, 5]; arr.splice(2, 1, "a", "b"); console.log(arr); // [1, 2, "a", "b", 4, 5] ``` 字符串:使用 `replace()` 方法替换字符串中的子串。 ``` let str = "Hello, World!"; let newStr = str.replace("World", "JavaScript"); console.log(newStr); // "Hello, JavaScript!" ``` 总的来说,数组字符串都有一些相似的方法,但是也有一些不同的方法。需要根据具体的场景选择使用哪种方法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值