美文网首页
数组相关笔记

数组相关笔记

作者: UmustHU | 来源:发表于2018-08-16 18:04 被阅读0次
forEach(可替代一般for循环使用)
//使用方法
let arr = ['bob','mary','kate'];
arr.forEach(function(val,index,arr){
    //val--数组中的值
    //index--下标
    //arr--循环的数组
    console.log(val,index,arr)
})
//返回结果
bob 0 [ 'bob', 'mary', 'kate' ]
mary 1 [ 'bob', 'mary', 'kate' ]
kate 2 [ 'bob', 'mary', 'kate' ]
map
//一般情况下map和forEach没多大区别
let arr = [
    {name:'bob',age:11,sex:0},
    {name:'kate',age:12,sex:1},
    {name:'mary',age:16,sex:1},
    {name:'kacy',age:10,sex:0},
    {name:'lily',age:11,sex:1}
];
arr.map((val,index) => {
    console.log(val,index)
})
//返回结果
{ name: 'bob', age: 11, sex: 0 } 0
{ name: 'kate', age: 12, sex: 1 } 1
{ name: 'mary', age: 16, sex: 1 } 2
{ name: 'kacy', age: 10, sex: 0 } 3
{ name: 'lily', age: 11, sex: 1 } 4

//但是map能够搭配return处理数据,并且返回新数据
let newArr = arr.map((val,index) => {
    return val.name;
})
console.log(newArr)
//返回结果
[ 'bob', 'kate', 'mary', 'kacy', 'lily' ]
//即map能够直接获得return返回的结果,但是forEach不能
filter(过滤)
let arr = [
    {name:'bob',age:11,sex:0},
    {name:'kate',age:12,sex:1},
    {name:'mary',age:16,sex:1},
    {name:'kacy',age:10,sex:0},
    {name:'lily',age:11,sex:1}
];
let newArr = arr.filter((val) => {
    return val.sex == 1;//过滤条件
    //返回条件为true的数据
})
console.log(newArr)
//返回结果
[ { name: 'kate', age: 12, sex: 1 },
  { name: 'mary', age: 16, sex: 1 },
  { name: 'lily', age: 11, sex: 1 } ]
some(类似查找功能)
let arr = ['bob','mary','kate'];
let result = arr.some((val) => {
    return val == 'bob';
    //只要数组中有一个满足条件的数据,就返回true
})
console.log(result)
//返回结果
true
every(和some差不多,不过是必须数组里面所有的数据都满足条件,才返回true)
let arr = [2,4,6,8,10];
let result = arr.every((val) => {
    return val%2 == 0;
})
console.log(result)
//返回结果
true
共性
//第一,以上五个方法的参数都一样
//第二,可修改this指向,以forEach为案例
let arr = ['bob','mary','kate'];

arr.forEach(function(val,index){
    console.log(this)
    //此处this指向的是window
})
//返回结果
Window {external: Object, chrome: Object, document: document, sysTime: 1534408575, _manCard: Object…}

arr.forEach(function(val,index){
    console.log(this)
},{})//该参数修改this指向对象
//返回结果
{}
{}
{}
////////但是如果使用箭头函数,就不能修改this指向,修改无效//////////

find,findIndex

arr.find(),从数组内查找指定元素,只要找到一个结果便返回,没找到返回undefined
arr.findIndex(),从数组内查找指定元素,只要找到一个结果便返回该结果的位置,没找到返回-1

let arr = [45,69,33,14,58,75];
let result = arr.find((val,index,arr) => {
    return val > 50
});
console.log(result);
//返回结果
69

let arr = [45,69,33,14,58,75];
let result = arr.findIndex((val,index,arr) => {
    return val > 50
});
console.log(result);
//返回结果
1

for...of和for...in

for...of用于循环数组中的value

let arr = [1,2,3,4,5];
for(let val of arr){
    console.log(val);
}
//返回结果
1
2
3
4
5

for...in用于循环数组中的下标

let arr = [1,2,3,4,5];
for(let index in arr){
    console.log(index);
}
//返回结果
0
1
2
3
4

相关文章

  • 数组相关笔记

    forEach(可替代一般for循环使用) map filter(过滤) some(类似查找功能) every(和...

  • Go基础 - 4 数组,切片,集合,通道

    数组 array 切片 slice 集合 map Map的迭代顺序是随机的 通道 channel 相关阅读 学习笔记

  • 数组相关

    1、JS两个数组比较,删除重复值巧妙方法

  • 数组相关

    0101 0102 0103 0104 0105 0201 0202 0203 0204 0205

  • 数组相关

    1、difference,比较两个数组 2、differenceBy,根据数据的属性进行过滤

  • 数组相关

    选定元素slice() slice() 方法可从已有的数组中返回选定的元素,类似于python的切片。语法: ar...

  • 数组相关

    1.二维数组遍历

  • 数组相关

    1.数组去重 利用 es6 的 Set 结构不接受重复值,可以这样写(仅限数字): 同理,去除字符串里的重复字符 ...

  • 数组相关

    两个数组,按照下标相同合并如b =[0=>[3,4],1=>[7,8],2=>[11,12],];合并后array...

  • 数组相关

    1、数组搜索1.1判断数组中是否存在某个值①indexOf ②lastIndexOf ③includes ④fin...

网友评论

      本文标题:数组相关笔记

      本文链接:https://www.haomeiwen.com/subject/cydobftx.html