视频加载失败

JS数组中的方法1

1177 字
6 分钟
JS数组中的方法1

数组中的方法#

1.给数组添加值#

1.1 charCodeAt(索引) 返回结果对应的是ASCII码;原字符串不变#

1.2 push();向数组末尾增加n项#

  • 参数<想向数组末尾增加的内容>,可以传递多个值,统一向数组末尾增加n向
  • 返回值<新增后数组的长度>
  • 原数组<改变>
var ary=[12,23,34,45];
ary.push(56);
console.log(ary);//-->[12,23,34,45,56]

1.3 unshift();向数组开头增加n项#

  • 参数<想向数组开头增加的内容>,可以传递多个值,统一向数组开头增加n向

  • 返回值<新增后数组的长度>

  • 原数组<改变>

  • 扩展<向数组末尾增加>

    • splice(a.length,0,x);向末尾增加,可增加多项

2.删除数组中的项#

2.1 pop();删除数组最后一项内容#

  • 参数<没有>
  • 返回值<被删除的那一项内容>
  • 原数组<改变>

2.2 shift();删除数组中的第一项#

  • 参数<没有>

  • 返回值<被删除的那一项内容>

  • 原数组<改变>

  • 扩展<删除数组最后一项内容的方法>

    • a) pop();删除数组最后一项内容
    • b) ary.length--;
    • c) ary.splice(ary.length-1);

3.数组中的截取和拼接#

3.1 slice 实现数组的截取,在原来的数组中截取某一部分#

3.1.1 slice(n,m)#
    1. n>=m 返回空数组
    1. n<0,m<0,n<m 从索引m开始找到索引为n处,不包含n,将找到的部分,以新数组返回,原数组不变。原数组的索引最后一位是0,倒数第二位索引是-1,以此类推;例如
var ary1=[11,22,33,44,55,66,77,88,99];
var res=ary1.slice(-4,-3);
console.log(res,ary1);
//[66] (9) [11, 22, 33, 44, 55, 66, 77, 88, 99]
    1. n>0,m<0 原数组的长度(从前往后)变为总长度+m(m为负数,即原数组总长度减短),slice(n,m)返回索引n开始到减短后的数组末尾 当n和m的绝对值相加>=原数组总长度时,slice(n,m)返回空数组;例如
var ary1=[11,22,33,44,55,66,77,88,99];
var res=ary1.slice(3,-3);
//[44, 55, 66] (9) [11, 22, 33, 44, 55, 66, 77, 88, 99]
    1. n>0,m>0,m>n
    • 参数<从索引n开始找到索引m处>(不包含m);
    • 返回值<索引n项到索引m-1项>,将找到的部分以新数组返回;
    • 原数组<不变>;
    1. slice(n);
    • 参数<从索引n开始一直找到数组末尾>
    • 将找到的部分以新数组返回
    • 原数组<不变>
    1. slice(0);/slice()
    • 把原来的数组克隆一份一模一样的新数组返回
    • 原数组<不变>
3.1.2 concat();把两个数组拼接在一起#
  • 参数:
    • ary1.concat(ary2);将ary1和ary2进行拼接,ary2在后面
    • ary1.concat();把ary1克隆一份一模一样的数组
  • 原数组<不变>
3.1.3 splice#

修改数组中某一项的值

    1. 利用对象的操作方式修改某一项的值,例如2=100;
    • 原数组<改变>
    1. 数组中的方法splice

splice 既能实现删除,也能实现增加,还能实现修改

3.1.3.1 splice的删除#
  • 返回值<删除的数据以新数组的方式返回>
  • 原数组<改变>
  1. splice(n,m);从索引n开始,删除m个元素,把删除的内容以一个新数组的方式返回,原数组改变
  2. splice(n);从索引n开始,删除到数组的末尾
  3. splice(0);从索引0开始,删除到数组的末尾;原数组返回空数组,splice(0)相当于克隆一份原数组,这样的克隆会修改原来的数;例如:
var a=[11,22,33,44,55,66,77];
var res=a.splice(0);
console.log(res,a);
//(7) [11, 22, 33, 44, 55, 66, 77] , []
  1. splice();相当于没有对原数组进行任何操作,splice()返回一个空数组.原数组不变;例如:
var a=[11,22,33,44,55,66,77];
var res=a.splice();
console.log(res,a);
//[] , (7) [11, 22, 33, 44, 55, 66, 77]
  1. splice(a.length-1);删除最后一项,把所有索引最后一个删除掉;例如:
var a=[11,22,33,44,55,66];
var res=a.splice(a.length-1);
console.log(res,a);
//[66] , (5) [11, 22, 33, 44, 55]
3.1.3.2 splice的修改#
  1. splice(n,m,x); 从索引n开始,删除m个,用x替换删除的部分,x可以是多项;例如:
var b=[1,2,3,4,5,6];
var res=b.splice(1,2,11,12,13);
console.log(res,b);
//[2, 3] , (7) [1, 11, 12, 13, 4, 5, 6]
3.1.3.3 splice的增加#
  1. splice(n,0,x); 从索引n开始,删除0个,用x替换删除的部分—>相当于把x增加到索引n的前面;例如:
var a=[11,22,33,44,55,66];
var res=a.splice(1,0,77,88);
console.log(res,a);
//[] , (8) [11, 77, 88, 22, 33, 44, 55, 66]
  1. splice(a.length,0,x);向末尾增加,可增加多项

4.通过属性值查找索引indexOf、lastIndexof#

通过属性值查找索引<只有在标准浏览器下兼容的>(数组中不兼容 字符串中兼容)原数组不变

    1. indexOf()
    1. lastIndexof()

5.遍历数组中的每一项#

5.1 forEach(function(x,y,i){});没有返回值,例如:#

var b=[11,22,33,44,55,66,11];
b.forEach(function (item,index) {
//item为数组当前项,index为数组中的索引
console.log(item,index);
});
//没有返回值
var new1b=b.forEach(function (a,b) {
return a*10;
});
console.log(new1b);//undefined

5.2 map(function(x,y,i){return;});#

var b=[11,22,33,44,55,66,11];
b.map(function (item,index) {
//item为数组当前项,index为数组中的索引
console.log(item,index);
});
var newb=b.map(function (item,index) {
return item*10;
});
console.log(newb);//[110, 220, 330, 440, 550, 660, 110]

6.将数组转化为字符串#

6.1 join("")#

按照每一个分隔符,把数组中的每一项拼接成一个字符串

var b=[12,22,33,44,55];
var res=b.join('+');
console.log(res,b);
//"12+22+33+44+55" (5) [12, 22, 33, 44, 55]
//扩展:eval:JS中把字符串变为JS表达式执行的一种方法
console.log(eval(res));//166
//简写:
console.log(eval(b.join('+')));//166

6.2 toString()#

原数组不变

var b=[12,22,33,44,55];
var res=b.toString();
console.log(res);//"12,22,33,44,55"

7.排序#

7.1 reverse()#

把数组倒过来排列,原数组也倒过来排列;例如:

var b=[11,22,33,44,55,66,11];
var res=b.reverse();
console.log(res,b);
//(7) [11, 66, 55, 44, 33, 22, 11] (7) [11, 66, 55, 44, 33, 22, 11]

7.2 sort();给数组进行排序,原数组也进行排序#

  1. ary.sort(); 只能处理10以内的数字
  2. sort(function(a,b){return a-b;});从小到大排序
  3. sort(function(a,b){return b-a;);从大到小排序

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
JS数组中的方法1
https://gaodaxiu-blog.netlify.app/posts/JS数组中的方法1/
作者
GaoDaXiu
发布于
2018-04-25
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
GaoDaXiu
Hello, I'm GaoDaXiu.
公告
欢迎来到我的博客!
分类
标签
最新动态
站点统计
文章
76
分类
20
标签
128
总字数
72,109
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Netlify CI
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录