1.增加
1.push() //从尾部添加
<script>
var arr = [1,2,3]
/* push
从数组的最后面增加一个值,可以一次性添加多个
*/
arr.push(4,5,6)
console.log(arr) //[1,2,3,4,5,6]
</script>
push不能添加数组
<script>
var arr =[1,2,3];
var obj = [4,5,6];
arr.push(obj);
console.log(arr) // [1, 2, 3, Array(3)]
</script>
解决:
<script>
var arr = [1, 2, 3];
var obj = [4, 5, 6];
/* 展开 */
//console.log(...arr)
arr.push(...obj)
console.log(arr) //[1,2,3,4,5,6]
</script>
2.unshift() //从头部添加
<script>
var arr = [1,2,3]
/* push
从数组的最后面增加一个值,可以一次性添加多个
*/
arr.unshift(4,5,6)
console.log(arr) //[4,5,6,1,2,3]
</script>
3.concat() //拼接两个数组
<script>
/*
concat 拼接两个数组,但是不能改变原数组的结构
*/
var arr =[1,2,3];
var obj = [4,5,6];
arr.push(obj);
var newArray = arr.concat(obj)
console.log(newArray) //[1,2,3,4,5]
</script>
4.splice() //定点增加
<script>
/* splice(index,0,parmas) 从index的前面增加 */
var skills=["html","css","jq","js"]
skills.splice(0,0,"vue","react")
console.log(skills) //["vue", "react", "html", "css", "jq", "js"]
</script>
2.删除
1.pop() //从后面删除
<script>
var arr =[1,2,3,4]
arr.pop();
console.log(arr) //[1,2,3]
</script>
2.shift() //从前面删除
<script>
var arr =[1,2,3,4]
arr.shift();
console.log(arr) //[2,3,4]
</script>
3.splice(index,howmany) index从哪个下标开始,howmany删除多少个
<script>
var app = [1,2,3,4,5,6]
app.splice(2,3);
console.log(app) //[1,2,6]
</script>
3.修改
<script>
/* splice(index,howmany,params) */
var arr = ['html','css','javascript']
arr.splice(1,2,"vue","react")
console.log(arr) //["html", "vue", "react"]
</script>
4.查询
1.indexOf()
<script>
var arr = ['html','css','javascript']
console.log(arr.indexOf('css')) //1
</script>
2.slice()
<script>
var app = [1,2,3,4,5,6,7]
console.log(app.slice(1,4)) //[2, 3, 4]
</script>
3.includes() 判断数组是否包含某个值
<script>
var arr = ['html','css','javascript']
console.log(arr.includes("javascript")) //true
</script>
5.遍历
1.for循环
<script>
var arr=[1,2,3,4,5]
for(i=0;i<arr.length;i++){
console.log(arr[i])
}
</script>
2.for- in
<script>
var obj={
name:"test",
color:'red',
day:'sunday',
number:5
}
for(var value in obj){
console.log(obj[value])
}
</script>
3.forEach
<script>
var arr= ['html','css','vue','react'];
arr.forEach(function(item){
console.log(item)
})
</script>
4.for-of
<script>
var arr= ['html','css','vue','react'];
for(var value of arr){
console.log(value)
}
</script>
5.map
<script>
var newArray = arr.map((item)=>{
return item+"1"
})
console.log(newArray)
</script>
6.from
<script>
var arr = [1,2,3,4];
Array.from(arr,item=>{
console.log(item)
})
</script>
6.其他方法
join(separator) //将数组拼接成字符串
<script>
var elements = ['Fire', 'Air', 'Water'];
console.log(elements.join()); //Fire,Air,Water
console.log(elements.join('')); //FireAirWater
console.log(elements.join('-')); //Fire-Air-Water
</script>
sort() //排序
升序
<script>
var arr = [21, 12, 1, 3, 4];
arr.sort((a,b)=>{
return a-b;
})
console.log(arr) //[1,3,4,12,21]
</script>
降序
<script>
var arr = [21, 12, 1, 3, 4];
arr.sort((a,b)=>{
return b-a;
})
console.log(arr) //[21, 12, 4, 3, 1]
</script>
reduce() //求和 ```javascript
//进阶 arr.reduce(function(prev,cur,index,arr){ … }, init); //arr 表示原数组; //prev 表示上一次调用回调时的返回值,或者初始值 init; //cur 表示当前正在处理的数组元素,item; //index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1; //init 表示初始值。
- reverse() //反转函数
```html
<script>
var arr = [11,23,13];
arr.reverse();
console.log(arr) // [13, 23, 11]
</script>
- Math.max(…arr); //获取数组最大的值
- Math.min(…arr); //获取数组最小的值
<script>
var arr = [1,2,3,4];
var max = Math.max(...arr);
var min = Math.min(...arr);
console.log(max) //4
console.log(min) //1
</script>
filter()
<script>
var arr = [1,2,3,4,5];
var newArr = arr.filter(item=>{
return item>3; //返回大于3的数组
})
console.log(newArr) //[4, 5]
</script>
entries() 方法返回一个新的Array Iterator对象,该对象包含数组中每个索引的键/值对。
<script>
var arr =['html','css','javascript','vue']
var newArr=arr.entries();
console.log(newArr.next().value) //[0,'html']
console.log(newArr.next().value) //[1,'css']
</script>
copyWithin() 方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度。
<script>
var array1 = ['a', 'b', 'c', 'd', 'e'];
// copy to index 0 the element at index 3
console.log(array1.copyWithin(0, 3, 4));
</script>
some()
- every()
find()
<script>
var arr = [1,2,3,4];
var num = arr.some(item=>{
return item>3;
})
var str = arr.every(item=>{
return item>1;
})
var value = arr.find(item=>{
return item>2;
})
console.log(num) //true
console.log(str) //false
console.log(value) //3
</script>
findIndex
var arr=[{id:001,content:"vue"},{id:002,content:"react"},{id:003,content:"small"}]
var index=arr.findIndex(item=>item.id==001)
console.log(index)
7.应用
//每个月份下各等级预警数量
let list = [
{
"periodName": "LastMonth", //月份
"levelWithCounts": [{
"warnLevel": "0", //预警等级
"count": 2
}, {
"warnLevel": "4",
"count": 6
}, {
"warnLevel": "3",
"count": 3
}]
},
{
"periodName": "LastTwoMonth",
"levelWithCounts": [{
"warnLevel": "1",
"count": 10
}, {
"warnLevel": "2",
"count": 3
}, {
"warnLevel": "3",
"count": 8
}]
},
{
"periodName": "LastThreeMonth",
"levelWithCounts": [{
"warnLevel": "0",
"count": 6
}, {
"warnLevel": "3",
"count": 5
}, {
"warnLevel": "4",
"count": 2
}]
}
]
//取单月下所有等级相加总数最大
let maxCount = Math.max(...list.map((a) => {
return a.levelWithCounts.length < 1 ? 0 : (a.levelWithCounts.reduce((pre, item) => {
return pre + (item.warnLevel=='0'? 0 : item.count)
}, 0))
}))
//对数组或对象进行排序
let listTypes = [
[
{name:"warningLevel",label:"预警级别",sortNum:10},
{name:"zhlx",label:"灾害类型",sortNum:9},
{name:"city",label:"所在市",sortNum:8},
{name:"zq",label:"所在区县",sortNum:7},
{name:"town",label:"所在乡镇",sortNum:6}
],
[
{name:"jd",label:"经度",sortNum:10},
{name:"wd",label:"纬度",sortNum:9},
{name:"dd",label:"监测点地点",sortNum:8},
{name:"wgy",label:"区域负责人",sortNum:7},
{name:"fzrdh",label:"联系电话",sortNum:6}
],
[
{name:"dlwz",label:"预警点位置",sortNum:10}
]
],
let data = {
"warningLevel": "0",
"warningTime": "2021-12-10 13:44:36",
"id": "3311230101",
"mc": "苏村滑坡",
"dlwz": "丽水市遂昌县北界镇苏村",
"wgy": "",
"jd": 119.2982726,
"wd": 28.78027178,
"fzrdh": "13695786238",
"zhlx": "滑坡",
"city": "丽水市",
"town": "北界镇苏村村",
"zq": "遂昌县",
"dd": "苏村"
}
listTypes[0].map(item=>{
if(data.hasOwnProperty(item.name)){
item.value = data[item.name]
}
})
listTypes[1].map(item=>{
if(data.hasOwnProperty(item.name)){
item.value = data[item.name]
}
})
listTypes[2].map(item=>{
if(data.hasOwnProperty(item.name)){
item.value = data[item.name]
}
})
listTypes.map(item=>{
item = item.sort((a,b)=> b.sortNum-a.sortNum)
})