Ashun's 技術駅 Ashun's 技術駅
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • Vue
  • 现代web布局
  • React
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 技术资源
  • 第一阶段

    • HTML
  • 第二阶段

    • JavaScript
  • 第三阶段

    • Vue
  • 第四阶段

    • 实战项目
  • 每周测试

    • 每周
  • 其他

    • Vue引入UI框架
    • Web前端面试
    • Vue3-resource
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 福利资源
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Ashun

前端界的小学生
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • Vue
  • 现代web布局
  • React
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 技术资源
  • 第一阶段

    • HTML
  • 第二阶段

    • JavaScript
  • 第三阶段

    • Vue
  • 第四阶段

    • 实战项目
  • 每周测试

    • 每周
  • 其他

    • Vue引入UI框架
    • Web前端面试
    • Vue3-resource
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 福利资源
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 01变量
  • 02常量
  • 03js数据类型
  • 04运算、判断、条件
  • 05数字类型
  • 06字符串
  • 07布尔值
  • 08空值
  • 09未定义
  • 10唯一值
  • 11对象
  • 13数组
    • 1、创建数组
    • 2、数组属性
    • 3、数组的增删改查
      • 增
      • 删
      • 改
      • 查
    • 4、判断是否为数组
    • 5、遍历数组
      • 1) 遍历简洁数组
      • for
      • for in✨
      • forEach✨
      • map✨
      • 2) 遍历复杂数组
    • 6、数组的方法
      • 1) 数组的变异方法
      • 最后一个pop、push✨
      • 第一个unshift、shift✨
      • 万能✨💖
      • 反转数组
      • 数组排序
      • 2) 数组的非变异方法
      • 1数组每个元素相乘
      • 2用forEach数组每个元素相乘
      • 3数组之间的合并
      • 4数组元素中所在的位置
      • 5数组转字符串
      • 6挑选数组元素并转新数组
      • 7选择元素其余过滤掉
    • 7、数组的操作✨💖
      • 1、数组去重☃🏃‍♀️
      • 方法1
      • 方法2
      • 方法3(es6)✨
      • 2、数组的交并补差
      • 合并
      • 交集
      • 并集
      • 补集
      • 差集
  • 14函数
  • 15日期对象
  • 16正则表达式
  • 17异常错误对象
  • 18BOM 浏览器对象模型
  • 19DOM文档对象模型
  • 20json
  • 21Ajax
  • 22jQuery
  • 23函数进阶
  • 24面向对象
  • 《javascript(es5)》
ashun
2022-02-14
目录

13数组

# 数组

# 1、创建数组

//第一种 ✨  0         1        2
var arr = ["娜美", "妮可罗宾", "大和"]
console.log(arr);//["娜美", "妮可罗宾", "大和"]

//第二种 
var arr2 = new Array("娜美", "妮可罗宾", "大和")
console.log(arr2);//["娜美", "妮可罗宾", "大和"]
1
2
3
4
5
6
7

# 2、数组属性

var arr = ["娜美", "妮可罗宾", "大和"]
console.log(arr.length);//3
1
2

获取第一个成员

var arr = ["娜美", "妮可罗宾", "大和"]
console.log(arr[0]);//娜美
1
2

获取最后一个成员

var arr = ["娜美", "妮可罗宾", "大和"]
console.log(arr[arr.length - 1]);//大和
1
2

# 3、数组的增删改查

# 增

var arr = ["娜美", "妮可罗宾", "大和"]
arr[3] = "波雅汉考克"
console.log(arr);//["娜美", "妮可罗宾", "大和", "波雅汉考克"]
1
2
3

# 删

var arr = ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
delete arr[0]
console.log(arr);//[empty, "妮可罗宾", "大和", "波雅汉考克"]
1
2
3

# 改

var arr = ["empty", "妮可罗宾", "大和", "波雅汉考克"]
arr[0] = "娜美"
console.log(arr);//["娜美", "妮可罗宾", "大和", "波雅汉考克"]
1
2
3

# 查

//           0         1        2          3
var arr = ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
console.log(arr[2]);//大和
1
2
3

# 4、判断是否为数组

var arr = ["娜美", "妮可罗宾", "大和"]
console.log(Array.isArray(arr));//true ✨✨
console.log(arr instanceof Array);//true
console.log(Object.prototype.toString.call(arr));//[object Array]
1
2
3
4

# 5、遍历数组

# 1) 遍历简洁数组

# for

var arr = ["娜美", "妮可罗宾", "大和"]
for (var i = 0; i < arr.length; i++) {
    console.log(arr[i]); //娜美,妮可罗宾,大和
}
1
2
3
4

# for in✨

var arr = ["娜美", "妮可罗宾", "大和"]
for (i in arr) {
    console.log(arr[i]);//娜美,妮可罗宾,大和
}
1
2
3
4

# forEach✨

var arr = ["娜美", "妮可罗宾", "大和"]
arr.forEach(function (item) {
    console.log(item);//娜美,妮可罗宾,大和
})

// // 也可以这样写
// arr.forEach((item) => {
//     console.log(item);
// })
1
2
3
4
5
6
7
8
9

# map✨

var arr = ["娜美", "妮可罗宾", "大和"]
arr.map(function (item) {
    console.log(item);//娜美,妮可罗宾,大和
})
1
2
3
4

# 2) 遍历复杂数组

var arr = [
    {
        countryName: "中国",
        cites: [
            { cityName: "广州" },
            { cityName: "深圳" },
            { cityName: "汕尾" },
        ],
    },
    {
        countryName: "美国",
        cites: [
            { cityName: "华盛顿" },
            { cityName: "纽约" },
            { cityName: "洛杉矶" },
        ],
    },
    {
        countryName: "日本",
        cites: [
            { cityName: "东京" },
            { cityName: "北海道" },
            { cityName: "大阪" },
        ],
    },
];

arr.map(function (item) {
    item.cites.map(function (items) {
        console.log(items.cityName)
    })
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

# 6、数组的方法

# 1) 数组的变异方法

# 最后一个pop、push✨

删除最后一个成员**【pop】**

var arr = ["娜美", "妮可罗宾", "大和"]
arr.pop()
console.log(arr);//["娜美", "妮可罗宾"]
1
2
3

添加最后一个成员**【push】**

var arr = ["娜美", "妮可罗宾", "大和"]
arr.push("波雅汉考克")
console.log(arr);// ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
1
2
3

# 第一个unshift、shift✨

删除第一个成员**【shift】**

var arr = ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
arr.shift()
console.log(arr);//["妮可罗宾", "大和", "波雅汉考克"]
1
2
3

添加第一个成员**【unshift】**

var arr = ["妮可罗宾", "大和", "波雅汉考克"]
arr.unshift("娜美")
console.log(arr);// ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
1
2
3

# 万能✨💖

splice

var arr = ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
arr.splice(0, 0, "new") //01:位置,02:删除几个,03:增加
console.log(arr);//["new", "娜美", "妮可罗宾", "大和", "波雅汉考克"]
1
2
3

# 反转数组

就是最后的数字就被排到前面来

var arr = ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
arr.reverse()
console.log(arr);//["波雅汉考克", "大和", "妮可罗宾", "娜美"]
1
2
3

# 数组排序

就是一些扰乱的数字就可以排成整整齐齐

var arr = [3, 1, 0, 2]
arr.sort()
console.log(arr);//[0, 1, 2, 3]
1
2
3

# 2) 数组的非变异方法

# 1数组每个元素相乘

通过指定函数处理数组的每个元素,并返回处理后的数组

var arr = [1, 2, 3, 4]
var arr2 = arr.map(function (item) {
    return item * 2
})
console.log(arr2);//[2, 4, 6, 8]
1
2
3
4
5

# 2用forEach数组每个元素相乘

forEach 为每个数组元素调用一次函数 只能迭代数组不能修改数组的成员

var arr = [1, 2, 3, 4]
var arr2 = []
arr.forEach(function (item) {
    arr2.push(item * 2)
})
console.log(arr2);// [2, 4, 6, 8]
1
2
3
4
5
6

# 3数组之间的合并

连接两个或更多的数组合并,并返回结果

var arr = [1, 2, 3]
var arr2 = [4, 5, 6]
var arr3 = arr.concat(arr2)
console.log(arr3);// [1, 2, 3, 4, 5, 6]
1
2
3
4

# 4数组元素中所在的位置

搜索数组中的元素,并返回它所在的位置

//         0  1  2
var arr = [1, 2, 3]
console.log(arr.indexOf(1));//0
console.log(arr.indexOf(4));//-1  没有出现在arr元素中就返回-1
1
2
3
4

# 5数组转字符串

把数组的所有元素放入一个字符串

var arr = ["波雅汉考克", "大和", "妮可罗宾", "娜美"]
console.log(arr.join());//波雅汉考克,大和,妮可罗宾,娜美
1
2

# 6挑选数组元素并转新数组

选取数组的的一部分,并返回一个***新数组***

var arr = ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
var arr2 = arr.slice(0, 2)
console.log(arr2);//["娜美", "妮可罗宾"]
1
2
3

# 7选择元素其余过滤掉

过滤 数组,返回过滤后的数组

var arr = [1, 2, 3]
var newArr = arr.filter(function (item) {
    return item % 2 === 0
})
console.log(newArr);//[2]
1
2
3
4
5

**判断数组**里面所有值 都符合条件,才返回true

var arr = [1, 2, 3, -1, 3, 6]
var bool = arr.every(function (item) {
    return item > 0
})
console.log(bool);//false
1
2
3
4
5

**判断数组**里面其中一个值 符合条件,就返回true

var arr = [1, 2, 3, -1, 3, 6]
var bool = arr.some(function (item) {
    return item > 0
})
console.log(bool);//true
1
2
3
4
5

# 7、数组的操作✨💖

# 1、数组去重☃🏃‍♀️

# 方法1

var arr = [2, 2, 1, 6, 5];
var arr2 = [];
arr.forEach(function (item) {
    if (arr2.indexOf(item) === -1) {
        arr2.push(item);
    }
});
console.log(arr2);//[2, 1, 6, 5]
1
2
3
4
5
6
7
8

# 方法2

var arr = [2, 2, 1, 6, 5];
var arr2 = [];
for (var i = 0; i < arr.length; i++) {
    for (var j = i + 1; j < arr.length; j++) {
        if (arr[i] === arr[j]) {
            arr.splice(j, 1);
            j--;
        }
    }
}
console.log(arr);//[2, 1, 6, 5]
1
2
3
4
5
6
7
8
9
10
11

# 方法3(es6)✨

var arr = [2, 2, 1, 6, 5];
console.log([...new Set(arr)]);//[2, 1, 6, 5]
1
2

# 2、数组的交并补差

# 合并

合-两组合并,全有数都要

var arr = [1, 2, 3];
var arr2 = [4, 5, 6];
console.log(arr.concat(arr2)); //[1, 2, 3, 4, 5, 6]
1
2
3

# 交集

交集-两组合并相同就保留

数组交集(两个数组都有的值)

var arr = [1, 2, 3, 4, 5];
var arr2 = [2, 4, 6];
var arr3 = [];

arr.forEach(function (item) {
    arr2.forEach(function (item2) {
        if (item === item2) {
            arr3.push(item);
        }
    });
});
console.log(arr3);//[2, 4]
1
2
3
4
5
6
7
8
9
10
11
12

# 并集

并集-两组合并有相同就保留一个数

数组并集(两个数组合并在一起不重复的值)

var arr = [2, 4, 6, 8, 10];
var arr2 = [1, 2, 3, 4, 5];
var arr3 = arr.concat(arr2);
console.log([...new Set(arr3)]);// [2, 4, 6, 8, 10, 1, 3, 5]   grol
1
2
3
4

# 补集

补-两组合并有相同就舍掉

数组补集(两个数组不重复的值合并一起)

var arr = [1, 2, 3, 4];
var arr2 = [1, 3, 5];
var newArr = arr.filter(function (item) {
    return arr2.indexOf(item) === -1;
});
var newArr2 = arr2.filter(function (item) {
    return arr.indexOf(item) === -1;
});
console.log(newArr.concat(newArr2)); //[2, 4, 5]
1
2
3
4
5
6
7
8
9

# 差集

差-两组对比最终要第一组 有跟第二组相同舍掉

数组差集(a数组有 b数组没有的)

var arr = [1, 2, 3, 4, 5]
var arr2 = [2, 4, 6, 8]
var newArr = arr.filter(function (item) {
    return arr2.indexOf(item) === -1;
})
console.log(newArr);//[1, 3, 5]
1
2
3
4
5
6
编辑 (opens new window)
上次更新: 2022/04/24, 13:33:34
11对象
14函数

← 11对象 14函数→

最近更新
01
课件-react路由-V6
01-22
02
课件-国际化
01-22
03
课件-redux-toolkit
01-22
更多文章>
Theme by Vdoing | Copyright © 2019-2024 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式