前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >数组、字符串方法大全

数组、字符串方法大全

原创
作者头像
星辰大海c
发布于 2023-11-20 05:55:39
发布于 2023-11-20 05:55:39
18300
代码可运行
举报
文章被收录于专栏:前端学习教程前端学习教程
运行总次数:0
代码可运行
WechatIMG800.png
WechatIMG800.png

会改变原来数组的方法

数组删除项的方法

pop() :删除数组最后一项,返回值是被删除的那一项

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = [5,6,5,5,8,7,9,7,'我会被删除'];
console.log(ary.pop());//==>'我会被删除'
console.log(ary);//==>[5,6,5,5,8,7,9,7]

shift():删除数组的第一项,会改变数组原有项的索引,返回值是被删除的那一项

代码语言:txt
AI代码解释
复制
var ary = ['我会被删除',5,6,5,5,8,7,9,7];
console.log(ary.shift());//==>'我会被删除'
console.log(ary);//==>[5,6,5,5,8,7,9,7]

delete:删除键值对的方式也可以删除数组中的对应项,不会改变数组中原有项的索引

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = [5,6,5,5,8,7,9,7];
delete ary[1];
console.log(ary);//==>[5,empty,5,5,8,7,9,7]
image.png
image.png

lengh-- (不是一个方法)通过改变数组长度,也会删除数组最后一项,输出是删除前的数组长度length 

  • 这里用操作length来改变数组
  • 输出取决于--/++的位置
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = [5,6,5,5,8,7,9,7];
ary.length--;
// --ary.length;
// ary.length++;
// ++ary.length;
console.log(ary);//==>[5,6,5,5,8,7,9]

数组增加项的方法

length:利用数组的length属性给数组向末尾增加

代码语言:txt
AI代码解释
复制
var ary = [1, 2, 3];
ary[ary.length] = 10;
console.log(ary);//==>[1,2,3,10]

push():给数组的末尾增加,传参几项就增加几项,返回值是改变后的数组的长度length

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = [1, 2, 3];
ary.push('我是push进来的',12,5,'hh');
console.log(ary);//==>[1,2,3,'我是push进来的',12,5,'hh']

unshift():给数组的开头增加,传参几项就增加几项,它会改变原有数组项的索引,返回值是改变后的数组的长度length

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = [1, 2, 3];
ary.unshift('我是unshift增加进来的',66,88);
console.log(ary);//==>['我是unshift增加进来的',66,88,1, 2, 3]

splice方法(增删改)

  • 删除undefinedsplice(n,m) 第一个参数表示从哪个索引开始,第二个参数表示要删除几项,即从索引n开始,删除m项,返回值是被删除的项(类型是数组)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 var ary = [7, 8, 9];
 ary.splice(0,1););//从索引0开始,删除一项,就是把第一项删除
image.png
image.png
  • 增加(增加的位置:从哪个索引开始,就是从那个索引的前面增加的)undefinedsplice(n,0,x) 从索引n开始,删除0项,即不删除,在索引n前面增加x项   
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = [7, 8, 9];
ary.splice(0,0,'这是我增加的项',1,2,3);
console.log(ary);//==>['这是我增加的项',1,2,3,7, 8, 9]
  • 修改undefinedsplice(n,m,x) 从索引n开始,删除m项,替换删除项的内容为x
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = [7, 8, 9];
// 从索引1开始,删除第一项,第三个参数代表要替换的内容
ary.splice(1,1,'这是我修改的项')
console.log(ary);//==>[7,'这是我修改的项',9]

数组排列/排序

  • 数组排列undefinedreverse():把数组中的每一项倒过来排
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = [3,1,4,7,2,51,48];
var res = ary.reverse();
console.log(res);//==>[48, 51, 2, 7, 4, 1, 3]
  • 数组排序undefinedsort() :适用于数组里每一项数字都是个位数的情况,如果由两位数及以上,就需要用函数来排序
    • 给数组排序,在没有传参的情况下,只根据每一项的第一位大小来按升序排序
    • 字母按字母表顺序排,大小写分开排,大写和大写排,小写和小写排
    • 汉字按笔画多少排,如果一项中有多个汉字,也是只按第一个排
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = [3,1,4,7,2,51,48];
var res = ary.sort();
console.log(res);//==>[1,2,3,4,48,51,7]
var ary1 = ['A','b','F','c'];
var res1 = ary1.sort();
console.log(res1);//==>["A", "F", "b", "c"]
  • 用函数方法实现数组(里面有两位及两位以上数字的数组)排序
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var aryObj = [
        {name:'张三',age:15},
        {name:'李四',age:18},
        {name:'王五',age:12},
        {name:'赵四',age:25}
    ];
var res3 = aryObj.sort((a,b) => {
     		return a.age-b.age;//升序排列
     		// return b.age-a.age;//降序排列
    });   
console.log(res3);//
image.png
image.png

不会改变原来数组的方法

slice():slice(n,m) 从索引n开始复制到索引m处(不包括索引m)

  • 如果m比数组length大,直接复制到末尾
  • 返回的是个新数组
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = [1, 2, 3];
// 从索引1开始复制到索引2处(不包括索引2)
var res = ary.slice(1, 2);
console.log(res);//==>[2]

ary.slice(0):克隆数组的方法

  • 从索引0开始复制整个数组,创建的是个新数组,与原有数组地址不同,不会互相影响。
  • ary.slice(n)第二项不传表示,从索引n直接复制到最后
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = [1, 2, 3];
var res = ary.slice(0);
console.log(res); //==>[1, 2, 3]
var res1 = ary.slice(ary.length - 1);
console.log(res1); //==>[3]

slice(-n,-m):slice里有负值,等价于从索引(-n+length)到索引(-m+length),不包括-m+length

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = [1, 2, 3];
var res2 = ary.slice(-3, -2); //等价于ary.slice(0,1)
console.log(res2); //==>[1]

concat方法 (数组的拼接):如果参数是个数组,会扒掉数组的一层[],可以传多个参数,都拼接在一起

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 var ary1 = [4, 5, 6, '哈哈哈'];
 var item = ary1.concat(['呵呵呵','hhh'],2);
 var item1 = ary1.concat([['呵呵呵','hhh']],2);
 var item2 = ary1.concat();
 console.log(item);//==>[4, 5, 6, '哈哈哈','呵呵呵','hhh',2]
 console.log(item1);//==>[4, 5, 6, "哈哈哈", Array(2), 2]  //Array(2):["呵呵呵", "hhh"]
 console.log(item2);//==>[4, 5, 6, '哈哈哈']

indexOf()/lastIndexOf()/includes()

  • indexOf():从前往后找,验证某一项是不是在该数组里,如果没找到这一项即不在数组里,返回值就是-1;如果在数组里,会返回对应的索引。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = ['王五','张三', '李四', '王五'];
var res = ary.indexOf('王五');
console.log(res1);//==>0
var res1 = ary2.indexOf('赵四');
console.log(res1); //==>-1
image.png
image.png
  • lastIndexOf():从后往前找,验证某一项是不是在该数组里,如果没找到这一项即不在数组里,返回值就是-1;如果在数组里,会返回对应的索引。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = ['王五','张三', '李四', '王五'];
var res = ary.lastIndexOf('王五');
console.log(res);//==>3
  • includes():验证该项是否在数组里,在就返回true,不在就返回false
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = ['王五','张三', '李四', '王五'];
var res = ary.includes('王五');
console.log(res);//==>true

join():用字符把数组中的每一项拼接在一起,返回是字符串;如果不传参,默认用逗号拼接在一起

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = [1, 2, 3];
var res = ary.join('+');
console.log(res);//==>'1+2+3'

toString(): 把数组转为字符串

forEach 迭代数组 :forEach((item,index)=>{})

  • item 数组中的每一项
  • index 是该项索引 字符串方法replace()方法:返回一个由替换值(replacement)替换部分或所有的模式(pattern)匹配项后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值可以是一个字符串或者一个每次匹配都要调用的回调函数。如果pattern是字符串,则仅替换第一个匹配项。原字符串不会改变。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function dealString(str){
        // return str.replaceAll('-','/');//replaceAll,es6新增
        return str.replace(/-/g,'/');
};

eval():可以让字符串变成表达式执行,非常消耗性能,项目中不建议使用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ary = [1, 2, 3];
var res = ary.join('+');
 console.log(eval(res));//==>6
 eval('var a = 9');//等价于var = 9; 

indexOf()/lastIndexOf()/includes() :和数组里的用法一样

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 var str = '一家人就要整整齐齐';
 var res = str.indexOf('人');
 var res1 = str.lastIndexOf('整');
 var res2 = str.includes('哈哈');
 console.log(res); //==>2
 console.log(res1); //==>6
 console.log(res2); //==>false

substr/substring/slice方法

  • substr(n,m):从索引n开始截取m个字符,不支持负数
  • slice(n,m) 从索引n截取到索引m,不包括m,支持负数
  • substring(n,m) :从索引n开始截取到索引m,不包括m,不支持负数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var str2 = '一家人就要整整齐齐';
console.log(str2.substr(0, 3));//==>'一家人'
console.log(str2.substring(0, 3));//==>'一家人'

charAt/charCodeAt方法

  • charAt(索引):获取字符串相关索引的字符
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var str3 = '一家人就要整整齐齐';
console.log(str3.charAt(0)); //==>一
  • charCodeAt(索引):获取字符串相关索引的字符,再把字符转成ASCII表里的数字
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var str3 = '一家人就要整整齐齐';
console.log(str3.charCodeAt(0)); //==>19968
  • String.fromCharCode(19968) :把ASCII表里的数字转成字符
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var str3 = '一家人就要整整齐齐';
console.log(String.fromCharCode(19968)); //==>一

toUpperCase/toLowerCase方法

  • toUpperCase():小写转大写
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var abc = 'abcdefg';
console.log(abc.toUpperCase());//==>'ABCDEFG'
  • toLowerCase():大写转小写
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var abc = 'ABCDEFG';
console.log(abc.toLowerCase());//==>'abcdefg'
  • 实现首字母大写:
    • 1、先拿到首字母,然后转成大写;
    • 2、拿到除了首字母的剩余字符,然后拼接在一起
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var abc = 'abcdefg';

var arr = abc.substr(0, 1).toUpperCase() + abc.substr(1);

console.log(arr);//==>'Abcdefg'

 split方法 :以指定字符把字符串拆分成数组中的每一项,返回值是数组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var str = '1+2+3';

var res = str.split('+');

console.log(res);// ==>["1", "2", "3"]
  • 处理网址分割方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var str = 'https://www.baidu.com/s?wd=JS&rsv_spt=1&a=1&b=2';

var res9 = str9.split('?');

var ary9 = res9[1].split('&');

// forEach(()=>{})

// item 数组中的每一项

// index 是该项索引

var obj = {};

ary9.forEach((item,index) => {

// console.log(item,index);

var inner1 = item.split('=');

obj[inner1[0]]=inner1[1];

})

console.log(obj);//==>{a: "1",b: "2",rsv_spt: "1",wd: "JS"}

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Javascript数组的常用方法和数据类型检测
数组常用的方法 数组的增加、修改、删除 数组的截取和拼接 数组转换为字符串 数组的排序和排列 新增方法 数组的增加、修改、删除 push:向数组的末尾增加新的内容 参数:一项或者多项 返回值:新增加后数组的长度 原数组:已经发生了改变 ary.push(10); //等效于 ary[ary.length] = 10; //等效于 ary.splice(ary.length, 0, 10); pop:删除数组最后一项的内容 参数:无 返回值:被删除的那一项的内容 原数组:已经发生了改变 ary.pop();
江米小枣
2020/06/15
6460
超实用的JS数组去重
我用let代替了var声明变量,还未学ES6的同学用var可以实现,不影响功能实现~
TimothyJia
2019/11/12
2.1K0
前端学习(40)~js学习(十七):数组的常见方法&数组的遍历
unshift():在数组最前面插入一个或多个元素,返回结果为该数组新的长度。插入元素后,其他元素的索引会依次调整。
Vincent-yuan
2020/03/19
1.9K0
JS数组&两值交换不使用第三变量
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
奋飛
2019/08/15
2.1K0
哪些 js 手写题是需要掌握的
普通的递归思路很容易理解,就是通过循环递归的方式,一项一项地去遍历,如果每一项还是一个数组,那么就继续往下遍历,利用递归程序的方法,来实现数组的每一项的连接:
helloworld1024
2022/10/10
1.8K0
JS数组常用方法大全
join(separator): 将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符,该方法只接收一个参数:即分隔符。
青梅煮码
2023/01/14
3K0
Js篇-面试题8-实现数组的快速,插入,冒泡排序
如果小于该项就放在该项的左边,大于该项就放在该项的右边,再分别把左边的项和右边的项的中间项取出
itclanCoder
2020/10/28
4380
JS常用方法-字符串篇
跟indexOf()返回的结果一样,但是它只有一个参数,优点在于可以设置更加“牛逼”的正则表达式,用来匹配你想要匹配的所有字符
全栈开发日记
2022/05/13
8680
JS数组操作
1)delete方法:delete arr[1] 这种方式数组长度不变,此时arr[1]变为undefined了,但是也有好处原来数组的索引也保持不变,此时要遍历数组元素可以才用
似水的流年
2020/06/02
8.7K0
说说前端经常考的手写题
类数组是具有length属性,但不具有数组原型上的方法。常见的类数组有arguments、DOM操作方法返回的结果。
helloworld1024
2022/11/04
1K0
22个超详细的 JS 数组方法
https://juejin.cn/post/6907109642917117965
前端达人
2021/01/27
3.3K0
数组
数组可以通过索引来访问、设置、修改对应的数组元素,可以通过“数组名[索引]”的形式来获取数组中的元素。
星辰_大海
2020/09/30
3740
javascript数组
数组也是一种数据类型,用于存放数据。在各大语言中都存在数组,但是语法由于大同小异。在JavaScript中数组也是一个非常重要的东西,所以有必要好好的了解一下。
踏浪
2019/07/31
7220
js数组常用方法「建议收藏」
请注意,上面的代码没有按照数值的大小对数字进行排序,是按照字符编码的顺序进行排序,要实现这一点,就必须使用一个排序函数:
全栈程序员站长
2022/08/30
2.4K0
js字符串/数组常用方法总结
str.charAt(index); 从一个字符串中获取索引为index的字符。
Daotin
2020/09/06
3.2K0
js数组的操作
数组的方法有数组原型方法,也有从object对象继承来的方法,这里我们只介绍数组的原型方法,数组原型方法主要有以下这些:
IT工作者
2022/01/15
2.8K0
前端面试高频20道手写题
该方法的参数是 Promise 实例数组, 然后其 then 注册的回调方法是数组中的某一个 Promise 的状态变为 fulfilled 的时候就执行. 因为 Promise 的状态只能改变一次, 那么我们只需要把 Promise.race 中产生的 Promise 对象的 resolve 方法, 注入到数组中的每一个 Promise 实例中的回调函数中即可.
helloworld1024
2022/08/02
3570
JS数组方法大全
功能:用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。 参数:concat(data1,data2,...);所有参数可选,要合并的数据;data为数组时,将data合并到原数组;data为具体数据时直接添加到原数组尾部;省略时创建原数组的副本。
IT工作者
2021/12/30
4.4K0
javascript字符串
字符串是JavaScript中7种数据中的一种,用于表示由零个或多个16位的Unicode字符组成的字符序列。创建字符串有两种方式,一种是字面量,另一种是构造函数。
踏浪
2019/07/31
5030
js常用方法和一些封装(1)1.字符串相关2.数组相关
博主在js上已经花费了很长时间,不禁深深地被其轻巧而强大的功能,以及优雅灵活的写法所折服,一直没找到机会来总结一下,最近发现了简书这个不错的平台,正好把学习的东西做一个汇总。 题外话 我始终认为,学习编程最好的方式就是去写,甭管写的怎样,也要去练习。 当初学完了数组,我记得自己是先把里面的每一个方法都敲了一遍,然后反复思考,通过这些方法,我能够做些什么? 很多语法我一开始也是很不理解的,然而在不断地运用过程中,慢慢地就开始明白过来了。只要抓住一个大方向,然后不断地练,就一定能深入理解! 正如国外一个有名的数
剽悍一小兔
2018/05/17
9980
相关推荐
Javascript数组的常用方法和数据类型检测
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文