JS数组

作者: 招投标秘籍 | 来源:发表于2021-03-20 16:35 被阅读0次

1.js数组是什么?

1.1真实的数组

其实js不是典型的数组,是用对象来模拟的数组,真实的数据应该

  1. 元素的数据类型相同
  2. 使用连续的内存储存空间
  3. 通过数字下标获取元素


    内存图

1.2js中的数组(对象模拟)

  1. 元素的数据类型可以不相同
  2. 内存不一定是相同的(可以随时存储)
  3. 不能通过数字下标,而是通过字符串
  4. 这意味数组可以有任意的key


    内存图

    举例说明

let arr =[1,2,3]
  console.log(arr)//[1,2,3]
  Object.keys(arr)//['0','1','2']

2.创建数组

2.1创建数组的常规方法

let arr =[1,2,3]
let arr=new Array(1,2,3)
let arr=new Array(3)//如果一个数字表示数组的长度

2.2字符串创建数组

let str ='1,2,3'
str.split(',')//用逗号来分开 ["1", "2", "3"]
let str ='123'
str.split('')//空字符串来隔开

2.3新语法创造数组

Array.from('123')// ["1", "2", "3"]
Array.from(123)//数字不能变成数组返回空

2.4如何判断是否是伪数组

举例

array={0:'a',1:'b',2:'c',3:'d',length:4}//从下文的截图我们可以看出没有数组的pop这些API
image.png

而如果把例子稍微变换我们就知道区别所在

Array.from({0:'a',1:'b',2:'c',3:'d',length:4})//有对象的属性
image.png

2.5数组结合

let arr=[1,2]
let arr1=[4,5]
arr.concat(arr1)//[1,2,4,5]

3.删除数组里面的元素

3.1用对象的方法来删除数组里面的元素(delete)

let arr=['a','b','c']
delete arr['0']//可以看到元素删除了 长度还是在的
image.png

3.2用shift() pop() splice()

let arr=[1,2,3,4,5,6]
arr.shift()//1第一个元素弹出来 长度不回保留
let arr=[1,2,3,4,5,6]
arr.pop()//6弹出最后一个元素  长度不会保留
let arr=[1,2,3,4,5,6]
arr.splice(1,2,99)//第一个表示删除第几个元素 第二个表示删除几个  后面是去添加
splice示例方法

4.查看数组里面的元素

4.1for循环

let arr=[1,2,3,4,5,6]
arr.x='x'
for(let i=0; i<arr.length; i=i+1){
   console.log(`${i} : ${arr[i]}`)
}//从下面返回的答案我们可以看到这里面X没打印出来

4.2forEach 用法arr.forEach(function(xxx){ console.log(xxx)})

如何理解这个函数我们来写一个函数

function forEach(array,fn){
  for(let i=0;i<array.length;i++)  
    fn(array[i],i)//第一个是当前的因素,第二个是数组的下标
}
console.log(forEach(['a','b','c'],function(){console.log('执行了一次')}))
console.log(forEach(['a','b','c'],function(x){console.log(x)}))
console.log(forEach(['a','b','c'],function(x,y){console.log(x,y)}))

5.如何查看元素在不在数组里面

let arr2 = [12,34,67,89];
arr2.indexOf(12)//返回0表示在数组里面,不在返回-1

6.如何在数组中增加元素

6.1尾部增加元素

let arr = [1,2,3,4,5,6,7,8]
arr.push(9)//

6.2头部增加元素

let arr = [1,2,3,4,5,6,7,8]
arr.unshift(9)

7.数组的元素调换顺序

let arr = [1,2,3,4,5,6,7,8]
arr.reverse()//[8, 7, 6, 5, 4, 3, 2, 1]

8.数组变换(map().filter().reduce())

8.1map(n变n)

一样变成一样

举例说明一个数组都变成原来元素的两倍

let arr=[1,2,3,4,5,6]
 console.log(arr.map(item=>item*item))// [1, 4, 9, 16, 25, 36]

8.2filter()(n 变少)

image.png
let arr=[1,2,3,4,5,6]
arr.filter(item=>item%2===0)// [2, 4, 6]

8.3reduce()

image.png
 let arr=[1,2,3,4,5,6]
arr.reduce((sum,item)=> {return sum+item },0)//就是所有的数相加sum

框子里面相当于是sum,每次抢的东西相当于是item


image.png

以上就是创建对象的几种方法,大家可以对比一下用法,都需要掌握.
本文为本人的原创文章,著作权归本人和饥人谷所有,转载务必注明来源.

相关文章

  • js 数组链接concat,和数组转字符串join,字符串转数

    js 数组链接用concat js 数组转成字符串 js 字符串转数组

  • js数组题目

    js面试题 js数组 一、按要求分割数组 将"js,数组,分类"字符串数组以/分割 for循环累加 join()把...

  • js 数组

    js 中数组的长度发生改变,数组就真的发生改变,快速清空数组就让数组长度为0js 数组的方法

  • JS数组以及数组变换

    有关数组 数组对象——一种特殊的对象JS其实没有数组,只使用对象来模拟数组 典型数组和JS数组的区别 典型数组 元...

  • 数组检测

    检测是否是数组: 数组转字符串: 字符串转换数组: js对象转换成js字符串: js字符串转换成js对象:

  • 概念集合

    JS中的数组和Arrary的区别 js中的数组就是array对象

  • JS 数组

    JS 数组是一种特殊的对象,不是真正的数组,它只##是通过对象来模拟数组。 JS 数组的定义 let arr = ...

  • javaScript的数组

    js中没有数组类型 js 中数组是以内置对象的形式存在 数组定义01 var attr = new Array('...

  • 数组

    数组的定义: js:存储多个相同类型数据 ,有序的数据;php数组 1,:索引数组,同js;声明:$arrName...

  • js笔记

    js数组 删除某个元素 js数组是否含有某个元素 判断value为undefined cookie操作

网友评论

    本文标题:JS数组

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