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
3
4
5
6
7
# 2、数组属性
var arr = ["娜美", "妮可罗宾", "大和"]
console.log(arr.length);//3
1
2
2
获取第一个成员
var arr = ["娜美", "妮可罗宾", "大和"]
console.log(arr[0]);//娜美
1
2
2
获取最后一个成员
var arr = ["娜美", "妮可罗宾", "大和"]
console.log(arr[arr.length - 1]);//大和
1
2
2
# 3、数组的增删改查
# 增
var arr = ["娜美", "妮可罗宾", "大和"]
arr[3] = "波雅汉考克"
console.log(arr);//["娜美", "妮可罗宾", "大和", "波雅汉考克"]
1
2
3
2
3
# 删
var arr = ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
delete arr[0]
console.log(arr);//[empty, "妮可罗宾", "大和", "波雅汉考克"]
1
2
3
2
3
# 改
var arr = ["empty", "妮可罗宾", "大和", "波雅汉考克"]
arr[0] = "娜美"
console.log(arr);//["娜美", "妮可罗宾", "大和", "波雅汉考克"]
1
2
3
2
3
# 查
// 0 1 2 3
var arr = ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
console.log(arr[2]);//大和
1
2
3
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
2
3
4
# 5、遍历数组
# 1) 遍历简洁数组
# for
var arr = ["娜美", "妮可罗宾", "大和"]
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]); //娜美,妮可罗宾,大和
}
1
2
3
4
2
3
4
# for in✨
var arr = ["娜美", "妮可罗宾", "大和"]
for (i in arr) {
console.log(arr[i]);//娜美,妮可罗宾,大和
}
1
2
3
4
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
2
3
4
5
6
7
8
9
# map✨
var arr = ["娜美", "妮可罗宾", "大和"]
arr.map(function (item) {
console.log(item);//娜美,妮可罗宾,大和
})
1
2
3
4
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
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
2
3
添加最后一个成员**【push】**
var arr = ["娜美", "妮可罗宾", "大和"]
arr.push("波雅汉考克")
console.log(arr);// ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
1
2
3
2
3
# 第一个unshift、shift✨
删除第一个成员**【shift】**
var arr = ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
arr.shift()
console.log(arr);//["妮可罗宾", "大和", "波雅汉考克"]
1
2
3
2
3
添加第一个成员**【unshift】**
var arr = ["妮可罗宾", "大和", "波雅汉考克"]
arr.unshift("娜美")
console.log(arr);// ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
1
2
3
2
3
# 万能✨💖
splice
var arr = ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
arr.splice(0, 0, "new") //01:位置,02:删除几个,03:增加
console.log(arr);//["new", "娜美", "妮可罗宾", "大和", "波雅汉考克"]
1
2
3
2
3
# 反转数组
就是最后的数字就被排到前面来
var arr = ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
arr.reverse()
console.log(arr);//["波雅汉考克", "大和", "妮可罗宾", "娜美"]
1
2
3
2
3
# 数组排序
就是一些扰乱的数字就可以排成整整齐齐
var arr = [3, 1, 0, 2]
arr.sort()
console.log(arr);//[0, 1, 2, 3]
1
2
3
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
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
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
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
2
3
4
# 5数组转字符串
把数组的所有元素放入一个字符串
var arr = ["波雅汉考克", "大和", "妮可罗宾", "娜美"]
console.log(arr.join());//波雅汉考克,大和,妮可罗宾,娜美
1
2
2
# 6挑选数组元素并转新数组
选取数组的的一部分,并返回一个***新数组***
var arr = ["娜美", "妮可罗宾", "大和", "波雅汉考克"]
var arr2 = arr.slice(0, 2)
console.log(arr2);//["娜美", "妮可罗宾"]
1
2
3
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
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
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
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
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
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
# 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
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
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
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
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
2
3
4
5
6
编辑 (opens new window)
上次更新: 2022/04/24, 13:33:34