js 中数组的方法

虽然我工作不是很久,自从转了前端后,我大概的理解了,我就按我的理解讲个大概,前端和后端的区别不是很大,一个是把数据整理好以JSON或者其他方式的数据结构以一个链接的形式返回给前端。前端则是把取到的数据做数据呈现。
很多想学习前端的小伙伴一定要知道的一些js对数组的处理方法。这里单单只是对数组的处理哦~。

  • 换值类型:toString()

这个方法在后端也是经常用到的,是数据类型转换的一种方式:其中转换方式不了接的小伙伴,可以去百度查看哦,很简单的。

var fruits = ["aaa", "bbb","ccc", "ddd"];
console.log(fruits.toString()) // aaa,bbb,ccc,ddd
  • 换值类型:jion()

首次看到这个方法的时候 让我不禁联想到了SQL里面的联表查询。

可将所有数组元素结合为一个字符串。它的行为类似 toString(),但是您还可以规定分隔符

var fruits = ["aaa", "bbb","ccc", "ddd"];
console.log(fruits.jion("-"))  //aaa-bbb-ccc-ddd
  • 删值:Popping()

Popping()简写成pop():默认删除数组的最后一个元素(注意:这里返回的值并不是数组,而是数组删除中被删除的元素)

var fruits = ["aaa", "bbb", "ccc", "ddd"];
var res = fruits.pop(); 
console.log(res) //ddd
  • 增值:push()

从尾巴处添加

var x = ['aaa','bbb','ccc']
 x.push('dddd')
console.log(x) //['aaa','bbb','ccc','dddd'] 

通过.length属性可以得到数组的长度。push()在js中是很常用的方法

  • 位移元素:shift()

会删除首个数组元素,并把所有其他元素“位移”到更低的索引。

var fruits = ["aaa", "bbb", "ccc", "ddd"];
var x = fruits.shift();
console.log(x)  //aaa

和pop 刚好相反一个尾一个首

  • 增值:unshift()

在开头向数组添加新元素,并“反向位移”旧元素

var fruits = ["aaa", "bbb", "ccc"];
var x = fruits.unshift(); 
console.log(x) //3
var z = fruits.unshift('ddd'); 
console.log(z) //4

这个方法的功能类似与length属性

  • 拼接数组:splice()

可用于向数组添加新项,这个就比前面提到的push()要灵活

var fruits = ["aaa", "bbb", "ccc", "ddd"];
var x = fruits.splice(2, 2, "xxx", "zzz");
var z = fruits.splice(2, 2);
console.log(fruits.splice(2, 2, "xxx", "zzz"))  //["ccc", "ddd"]
console.log(x)  //["xxx", "zzz"]  
console.log(z) //[]  当后面没有其他参数时,就是单纯的删除,从第几个开始删除多少个

第一个参数(2)定义了应添加新元素的位置(拼接)。

第二个参数(0)定义应删除多少元素。

其余参数(“Lemon”,“Kiwi”)定义要添加的新元素。

splice() 方法返回一个包含已删除项的数组

  • 合并(连接)数组:concat()

通过合并(连接)现有数组来创建一个新数组(是一个新的数组,原有的数组都被合并了)

var myGirls = ["aaa", "bbb"];
var myBoys = ["ccc", "ddd", "xxx"];
var myChildren = myGirls.concat(myBoys);
console.log(myChildren)  //["aaa", "bbb","ccc", "ddd", "xxx"]

看到这个有细心的小伙伴就会有个疑问:如果我有很多个数组合并呢?没事你也可以!只要你遵循concat()语法就行,concat()里面的参数最多支持两个不同的数组。如果有三个就是另外一种写法:

var myGirls = ["aaa", "bbb"];
var myBoys = ["ccc", "ddd", "xxx"];
var myman = ["ooo", "ppp", "fff"];
var myChildren = myGmyman.concat(myBoys,myGirls);
console.log(myChildren)  //["ooo", "ppp", "fff", "ccc", "ddd", "xxx", "aaa", "bbb"]
  • 裁剪数组:slice()

用数组的某个片段切出新数组(也是一个新数组)

var myman = ["ooo", "ppp", "fff"];
var myChildren = myman.splice(1);
console.log(myChildren) //["ppp", "fff"]
var myman = ["ooo", "ppp", "fff"];
var myChildren = myman.splice(0,1);
console.log(myChildren) //["ooo"]

第一种情况:删除多少个,最多可删除数组的length个如果你传的参数大于数组的length 就相当于全部删除。第二种情况:从第一个删除一个,这里的参数只能是数组的下标

  • 数组排序:sort()

将数组里的项从小到大排序(升序)

var arr1 = ["a", "d", "c", "b"];
console.log(arr1.sort());           // ["a", "b", "c", "d"]

sort()方法比较的是字符串,没有按照数值的大小对数字进行排序,要实现这一点,就必须使用一个排序函数

function sortNumber(a,b)
{
  return a - b
}
arr = [13, 24, 51, 3]; 
console.log(arr.sort()); // [13, 24, 3, 51] 
console.log(arr.sort(sortNumber)); // [3, 13, 24, 51](数组被改变)
  • 数组排序:reverse()

反转数组项的顺序(降序)

var arr = [13, 24, 51, 3];
console.log(arr.reverse());         //[3, 51, 24, 13]
console.log(arr);               //[3, 51, 24, 13](原数组改变)

额外送一个容易理解的字符串方法。

  • 判断有无:indexOf()

es5新增的字符串方法:返回字符串中指定文本首次出现的索引(位置)

var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");
console.log(pos)  //17

如果没有则返回-1,可用于做字符串中包含有XXX的判断。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值