js数组基本知识

1、利用new创建数组

语法格式 :
var 数组名=new Array();
2.利用数组字面量创建数组
var 数组名=[];

// 第一种创建数组的方法。
        var a=new Array();
        // 第二种
        var b=[];

1.1数组的遍历

<script>
        var a=['red','green','blue',3,4,5,6];
        for (let i = 0; i < a.length; i++) {
            console.log(a[i]);    
        }
    </script>

运行结果:
在这里插入图片描述
1.2数组的求和:

<script>
        // 2,6,1,7,4 求和及平均值
        var a=[2,6,1,7,4];
        var s=0;
        
        for (let i = 0; i < a.length; i++) {
            s=s+a[i];
        }
        console.log("数组a的和是:"+s+",平均值是:"+s/a.length);
    </script>

运行结果:
在这里插入图片描述
1.3新增数组元素:

<script>
        var a=['red','green','blue'];
        console.log(a);
        // 修改数组的长度为5
        a.length=5;
        console.log(a);
        console.log("a[4]="+a[4]);
        // 新增数组元素 修改索引号 追加新元素
        a[4]="new4";
        a[5]="new5";
        console.log(a);
    </script>

运行结果:
在这里插入图片描述

 a="lxl";//不要直接给数组名赋值,否则里面的数组元素都没了
        console.log(a);

运行结果:
在这里插入图片描述

<script>
// 数组.push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度(重点)
    let arr=[1,2,3,4,5];
    console.log(arr.push('一','二','三'));//8返回的是数组的长度
    console.log(arr);//
// arr.unshift(新增的内容)方法将一个或多个元素添加到数组的开头,并返回该数组的新长度
    console.log(arr.unshift(-3,-2,-1,0));
    console.log(arr)
    </script>

在这里插入图片描述

2、数组的删除

数组.pop()方法从数组中删除最后一个元素,并返回该元素的值

<script>
        // 从数组中删除最后一个元素
        var arr=[1,2,3,4,5,6,7,87];
        console.log(arr.pop());
        console.log(arr);
        // 删除第一个元素
        console.log(arr.shift());
        console.log(arr);
    </script>

在这里插入图片描述

数组.splice()方法 删除指定元素
数组.splice()方法,如果不写删除几个元素,
则就把[起始位置到最后]的所有元素都删除了
arr.splice(起始位置,删除几个元素)

var arr = [1, 2, 3, 4, 5, 6, 7, 87];
arr.splice(2,1);
console.log(arr);
arr.splice(0);
console.log(arr);

在这里插入图片描述

3、数组的map方法

let arr = ['red', 'green', 'blue'];
arr.map(function (item, index) {
    console.log(item);  //获取元素red green blue
    console.log(index); //获取下标 0 1 2
});

在这里插入图片描述

let arr = ['red', 'green', 'blue'];
let newArr = arr.map(function (item, index) {
    return item + '老师';
});
console.log(newArr);

在这里插入图片描述
需求:把一个数组的各项都加10,并输出

const arr2=[32,65,76,87,9];
const arr3= arr2.map(function (item,index) {
    return item+10;
});
console.log(arr3);//[42, 75, 86, 97, 19]

4、join方法

join()方法用于把数组中的所有元素转换一个字符串

const arr=['red','green','blue',100];
console.log(arr.join(''));//redgreenblue100
console.log(arr.join('-'));//red-green-blue-100
console.log(arr.join('*'));//red*green*blue*100

5、数组结构

在这里插入图片描述
数组解构是将数组的单元值快速批量赋值给一系列变量的简洁语法

基本语法:
1.赋值运算符 =左侧的 [ ] 用于批量声明变量,右侧数组的单元值将被赋值给左侧的变量
2.变量的顺序对应数组单元值的位置依次进行赋值操作

arr = [100, 300, 200];
// 数组解构 批量赋值
const [min, max, avg] = arr;
console.log(`最大值:${max}`);

在这里插入图片描述
在这里插入图片描述

// 交换二个变量
let a = 10;
let b = 20;//必须加分号
[b, a] = [a, b,];
console.log(`a=${a}, b=${b}`);//a=20, b=10
const [hr,qh,rb]=['海尔','清华','日本'];
console.log(hr);//0海尔

// 请将最大值和最小值函数返回值解构 max和min 两个变量
function getValue() {
return [600,100];
}
const [max,min]=getValue();
console.log(max);//600

5.1数组结构的特殊情况

// 变量多,单元值少 多余的变量是undefined
const [a,b,c,d]=[1,2,3];
console.log(a,b,c,d);//1 2 3 undefined

// 变量少,单元值多 多余的不赋值
const [k,e]=[1,2,3,4];
console.log(k,e);//1 2
// 利用剩余参数解决变量少 单元值多的情况
const [m,n,...arr]=[1,2,3,4];
console.log(k);//1 
console.log(e);//2
console.log(arr);//[3, 4]
// 防止underfined的传入  可以设置默认值
const [x = 0, y = 0] = [];
console.log(x, y);//0 0
// 按需导入 自动忽略某些值
const [g, , v, l] = [1, 2, 3, 4];
console.log(g, v, l);//1 3 4
// 多维数组的结构
const [a1, b1, [c1, d1]] = [1, 2, [3, 4]];
console.log(a1);//1
console.log(b1);//2
console.log(c1);//3
console.log(d1);//4
const [a2, b2, ...brr]= [1, 2, [3, 4]];
console.log(brr);//[Array(2)]

在这里插入图片描述

6、forEach遍历数组

在这里插入图片描述
有点类似于forin

const arr=['red', 'green', 'yellow', 'blue'];
arr.forEach(function (item,index) {
    console.log(item);
    console.log(index);
})

在这里插入图片描述
注意:
1.forEach 主要是遍历数组索引号可选。
2.参数当前数组元素是必须要写的,
3.不返回数组,里面也不需要写return,
4.适合遍历数组对象

const arr=['red', 'green', 'yellow', 'blue'];
const result= arr.forEach(function (item,index) {
})
console.log(result);//undefined

7、筛选数组filter

filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素
主要使用场景:筛选数组符合条件的元素,并返回筛选之后元素的新数组

let arr = [100, 200, 300, 400, 500, 600, 700, 800, 900];
arr.filter(function (item, index) {
    console.log(item);//输出值
    console.log(index);//输出下标
})

在这里插入图片描述
基本语法:

let arr = [100, 200, 300, 400, 500, 600, 700, 800, 900];
const newArr = arr.filter(function (item, index) {
    return item > 500;
})
console.log(newArr);

在这里插入图片描述

8、数组常见的实例方法—reduce

在这里插入图片描述

在这里插入图片描述

先定义一个数组

let arr = [1, 2, 3, 4, 5];

没有初始值

const total = arr.reduce(function (prev, current) {
    return prev + current;
})
console.log(total);//15

有初始值

const arr1=arr.reduce(function (prev, current){
    return prev + current;
},100) 
console.log(arr1);//115

箭头函数的写法

const total3 = arr.reduce((prev, current) => prev + current, 1000);
console.log(total3);//1015

理解一下他们的区别
在这里插入图片描述

9、数组常见的实例方法总结

  • 实例方法 join 数组元素拼接为字符串,返回字符串(重点)
  • 实例方法 find 查找元素,返回符合测试条件的第一个数组元素值,如果没有符合条件的则返回 undefined(重点)
const arr = ['red', 'green', 'yellow'];
const re= arr.find(function (item) {
    return item === 'yellow';
});
console.log(re);//yellow

find的应用
需求:找到小米,并返回这个对象

let phone = [
    {
        name: '华为',
        preice: 1999,
    },
    {
        name: '苹果',
        preice: 1999,
    },
    {
        name: '小米',
        preice: 1999,
    },
];
const rep=phone.find(item => item.name === '小米');
console.log(rep);//{name: '小米', preice: 1999}
  • 实例方法every 检测数组所有元素是否都符合指定条件,如果所有元素都通过检测返回 true,否则返回 false(重点)
// 判断是否有阳
let arr=['阴','阴','阴','阴','阳','阴','阴'];
const a1=arr.every(function(item){
    return item==='阴';
});
console.log(a1);//false
  • 实例方法 some 检测数组中的元素是否满足指定条件 如果数组中有元素满足条件返回 true,否则返回 false
判断是否有阳性
let arr=['阴','阴','阴','阴','阳','阴','阴'];
const a2=arr.some(item => item==='阳')
console.log(a2);//true
  • 实例方法 concat 合并两个数组,返回生成新数组
  • 实例方法 sort 对原数组单元值排序
  • 实例方法 splice 删除或替换原数组单元
  • 实例方法 reverse 反转数组
  • 实例方法 findIndex查找元素的索引值

在这里插入图片描述

10、伪数组转为真数组

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>
<script>
    const lis = document.querySelectorAll("li");
    console.log(lis);//是一个伪数组
    const liss = Array.from(lis);
    console.log(liss);
</script>

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值