数组

数组

说明:
只记录不熟悉的知识点

操作

1. 添加

(1) push()

//利用push合并数组,完全可以用concat
Array.prototype.push.apply(arr,[1,2,3])

(2) unshift()

2. 删除

(1) pop()
(2) shift()
(3) delete 操作符
此方式删除指定下标的数组值,值重置为undefined

3. 分离合并

(1) slice(start,[end])
返回start到end前的部分
注意:可以是负数
(2) splice(start,delnum,...addvalue)
返回删除,添加(替换)后的新数组
(3) concat()
合并数组,改变原数组

arr1.concat(arr2);
//字符串也有此方法,连接字符串
4. 其他方法

(1) sort([fn])
ascii排序,fn比较两个值大小,大于0第一个值大,等于0,小于0

var arr=["x",1,"g","b"];
arr.sort();//[1, "b", "g", "x"]

(2) reverse()
反转数组

arr.reverse();

(3) join(str)
(4) indexOf(value)/lastIndexOf(value)
查找第一个/最有一个值在数组的下标,无-1
(5) isArray()

//等效于
Object.prototype.toString.call(xx)==="[object Array]"
5. 遍历

(1) for

//正向
for(var i=0,l=arr.lenght;i++){
    ...
}
//逆向,效率最高
for(var l=arr.length;l--;){
    ...
}

(2) forEach(fn(val,index,arr)) ES5,低版本不支持
函数接收参数arr指数组本身

arr.forEach(function(val,index,arr){
    ...
})

(3) map(fn(val,index,arr))
遍历并返回一个新数组,此函数操作数组中的每一个值(react中用的较多)

fnvar numbers = [1, 2, 3];
numbers.map(function (n) {
  return n + 1;
});
// [2, 3, 4]

(4) filter(fn(val,index,arr))
遍历,返回结果为true的值组成新数组

[1, 2, 3, 4, 5].filter(function (val) {
  return val > 3;
})
// [4, 5]

(5) some(fn(val,index,arr))
遍历,其中一个值经过函数处理返回了true,则返回true

var arr = [1, 2, 3, 4, 5];
arr.some(function (elem, index, arr) {
  return elem >= 3;
});
// true

(6) every((val,index,arr))
所有都是true,则返回true
(7) reduce(fn(ex,val,index,arr),ex) / reduceRight()
返回ex,默认是数组中的第一个val,也可以用第二参数指定

[1, 2, 3, 4, 5].reduce(function(ex, val){
  return ex + val;
}, 10);
// 25
['aaa', 'bb', 'c'].reduce(function (longest, entry) {
    return entry.length > longest.length ? entry : longest;
}, '');

ES6

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值