ES6中的一些数组操作

首先说一些ES3的数组方法

  • split()讲一个字符串分割成字符串数组
  • splice(规定位置开始,数量,可选–添加新项目)方法是从数组中添加、删除
  • slice(从什么位置开始取值,可选–结束位置–但是不包括结束位置)用于取值
  • push(值)从数组末尾添加一个或多个元素
  • pop()用于删除数组最后一位元素
  • unshift(值)从数组开始添加一个或多个元素
  • shift()用于删除数组第一位元素
  • join(字符)将数组元素通过指定的字符连接成字符串
  • concat(数组1,数组2,…)用于连接两个或者多个数组
  • reverse()数组元素颠倒顺序
  • sort(fn)对数组进行排序

var a=[1,2,3,5,10,25];
console.log(a.sort()); // [1,10,2,25,3,5]

修改:

var array=[15,5,10,2,0];
array.sort((a,b)=>{return a-b});
console.log(array); // [0,2,5,10,15]

参数a,b分别表示数组中的任意两个元素,若 return > 0 则表示 则b前a后(后来居上原则)。若 return < 0 则表示 a前b后。
对象排序:

let obj_list=[{
name:‘li’,
value:99
},{
name:‘chen’,
value:100
},{
name:‘huang’,
value:1
}]
console.log(obj_list.sort((a,b)=>{return a.value-b.value}))
// 排序结果:‘huang’,‘li’,‘chen’

shot进行随机排序
让返回的随机数 大于0和小于0 的概率一样即可

let array=[1,2,3,5,7,8,11,21,33];
function ran(){
return 0.5 - Math.random();
}
array.sort(ran());
console.log(array); // [1,11,2,21,3,33,5,7,8]

ES6数组操作
indexOf(“值”):返回在数组中第一个找到值的位置,若是不存在就返回-1

let str=“wondermaomao”
console.log(str.indexOf(‘w’)) //-----返回1
console.log(str.indexOf(‘i’)) //—返回-1

对于数组操作

var arr=[‘666’,‘orange’,‘apple’];
console.log(arr.indexOf(‘app’),arr.indexOf(‘apple’)); // -1 2

forEach()遍历数组

let array1 = [‘j’, ‘a’, ‘v’, ‘a’, ‘n’];
array1.forEach(element=> {
console.log(element);
});//遍历出j a v a n

map(回调函数):映射,用法和forEach

var a1 = [‘a’, ‘b’, ‘c’];
var a2 = a1.map(function(item) {
return item.toUpperCase();
});
console.log(a2); // logs A,B,C


var a=[1,32,442,234];
b=a.map((item)=>{return item+1;}); // ES6箭头函数语法,看不懂的同学可以先去学下ES6
console.log(a,b); // [1,32,442,234] [2,33,443,235]


具体的可以看:ES6数组操作
filter过滤筛选,将符合要求的元素返回出来

var a1 = [‘a’, 10, ‘b’, 20, ‘c’, 30];
var a2 = a1.filter(function(item) {
return typeof item == ‘number’;
});
console.log(a2); // logs 10,20,30

some(函数)–表示或者的意思,只要数组中任意一项满足函数体都成立

function isnumber(argument) {
return typeof argument ==‘number’;
}
var arr1 = [1,2,3];
console.log(arr1.some(isnumber));
var arr1 = [1,“2”,3];
console.log(arr1.some(isnumber));
var arr1 = [“1”,“2”,“3”];
console.log(arr1.some(isnumber));

reduce(回调函数):从左向右遍历

var a = [10, 20, 30];
var total = a.reduce(function(first, second) {
return first + second;
}, 0);
console.log(total) // Prints 60

reduceRight(回调函数):从右到左遍历
和reduce用法一样只是遍历方向不同

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值