数组:
1、数组内可以存放任意类型的数据
2、数组元素不赋值,则为undefined
3、打印数组时,如果某个元素没有赋值,则为“”
4、访问数组范围以外的元素时,不会出现越界异常,为undefined
5、定义的数组大小,依然可以添加更多的元素

一、数组的创建

第一种:

var arrayObj = new Array(); //创建一个数组  
arr[0] = 123
arr[1] = "abc";
arr[5] = false;
alert(arr[3]);//undefined
alert(arr);//123,abc,,,,false
alert(arr[10]);//undefined,不会出现越界异常

第二种:

//创建一个数组并指定长度,注意不是上限,是长度
var arrayObj = new Array([size]); 

要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。

var arr2 = new Array(2);//规定了数组的长度为2
arr2[0] = "ddd";
arr2[1] = "www";
alert(arr2);//ddd,www
arr2[2] = "fff";//可以再次添加元素,定义的数组大小对此没有影响
alert(arr2);//ddd,www,fff

第三种:

//创建一个数组并赋值
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); 
例如:
var arr3 = new Array(true,123,false);
alert(arr3);//true,123,false

第四种:

//第四种,推荐使用
var arr4 = [false,"aaa",123];
alert(arr4);//false,aaa,123

二、数组数据添加元素

1.Array.push() 追加到后面 – 原数组

let arry = [1,2,3,4];
array.push(5,6)

2.Array.unshift()追加到前面 – 原数组

let array = [1,2,3,4];
array.unshift(2,4)

3. Array.splice(索引位置,个数,添加的元素) – 原数组

let array = [1,2,3,4,5];
array.splice(array.length,0,6,8,9);//第二个参数为0的时候,是可以添加参数的,1的时候是删除

4.Array.length – 原数组

let array=[1,2,3,4,5];
array[array.length]=6

5.Array.concat() – 新数组

[1,2,3].concat(5,6,7)

6. … --新数组

[...[1,2,3,4],5]

二、删除数组指定元素

arrayObj.pop(); //移除最后一个元素并返回该元素值
arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移
arrayObj.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素

方法1:splice方法

注释:该方法会改变原始数组。

splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值

  • index:数组开始下标

  • len: 替换/删除的长度

  • item:替换的值

删除操作的话 item为空

方法2:delete方法

delete删除掉数组中的元素后,会把该下标出的值置为undefined,数组的长度不会变

中间出现两个逗号,数组长度不变,有一项为undefined

三、获取数组指定元素的下标

1、for循环对比

2、indexof

//获取元素指定值得下标
var findex = _up_one_pfile.indexOf(index);

例如:

//总数组
console.error(_up_one_pfile);
//找数组中对应的值
console.error(pfile);
//获取其对应值在数组中的位置
var findex = _up_one_pfile.indexOf(pfile);
console.error(findex);
console.error("findex");

js数组的创建、添加、删除、获取指定元素下标的更多相关文章

  1. js+jquery动态设置/添加/删除/获取元素属性的两种方法集锦对照(动态onclick属性设置+动态title设置)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html140 ...

  2. js节点的创建添加删除

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. JavaScript Dom基础-9-Dom查找方法; 设置DOM元素的样式; innerHTML属性的应用; className属性的应用; DOM元素上添加删除获取属性;

    JavaScript Dom基础 学习目标 1.掌握基本的Dom查找方法 domcument.getElementById() Domcument.getElementBy TagName() 2.掌 ...

  4. js动态给table添加/删除tr的方法

    js动态给table添加/删除tr的方法. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> ...

  5. dir(dict)|字典的创建-添加-删除-修改-判断存在-取值等相关操作

    dir(dict) ####字典操作:创建-添加-删除-修改-判断存在-取值 #(一)创建字典: {} .等号. zip(). [(),()] #1.创建空字典 dict0 = {} #2.等号创建 ...

  6. 如何通过源生js获取一个元素的具体样式值 /* getCss:获取指定元素的具体样式的属性值 curElement:[dom对象] attr:[string] */

    昨天的博客些的真的是惨不忍睹啊!!!但是我的人生宗旨就是将不要脸的精神进行到底,所以,今天我又来了.哈哈哈哈哈! 方法一:元素.style.属性名:(这个有局限性--只能获取行内样式的值,对于样式表或 ...

  7. javascript 中数组的创建 添加 与将数组转换成字符串 页面三种提交请求的方式

    创建js数组 var array=new Array(); Java中创建数组 private String[] array=new String[3]; 两个完全不同的,js中是可变长度的 添加内容 ...

  8. jQuery08源码 (5140 , 6057) DOM操作 : 添加 删除 获取 包装 DOM筛选

    jQuery.fn.extend({ //$('ul').find('li').css('background','red'); //$('ul').find( $('li') ).css('back ...

  9. File常用的方法操作、在磁盘上创建File、获取指定目录下的所有文件、File文件的重命名、将数据写入File文件

    文章目录 1.基本介绍 2.构造方法 3.常用的方法 4.代码实例 4.1 创建文件和目录(目录不存在) 4.1.1 代码 4.1.2 测试结果 4.2 测试目录存在的情况.直接写绝对的路径名 4.2 ...

  10. Django学习路11_向数据库中添加 和 获取指定条件数据

    在 views.py 中添加函数 向数据库中添加数据 def add_persons(request): for i in range(15): person = Person() flag = ra ...

随机推荐

  1. 01_windows、linux互ping不通解决方式

    一.NAT设置(NAT模式可访问公网,可连接本机,不可访问局域网) 1.编辑-->虚拟网络编辑器 2.设置NAT模式 二.配置Linux静态ip地址 1.命令:setup 2.配置完毕重启网卡: ...

  2. perl的学习:将分句脚本split-sentences.perl转为python脚本

    初识perl,只为完成分句脚本的转换.因此本文具有极强的目的性,perl的很多好用功能就不研究了,主要内容围绕分句脚本展开,部分基础知识就不再赘述. 1.仓库的地址:https://gitee.com ...

  3. 使用python往已有内容的PDF文件写入数据

    只使用reportlab库好像没法在已经有内容的PDF页面中写入数据,只能生成一个空的PDF文件再写入.所以这里我是配合pdfrw库来实现的.具体见示例 from reportlab.pdfgen.c ...

  4. 2022-05-07内部群每日三题-清辉PMP

    1.项目需要一位熟练的工程师来执行某个特定任务,但由于工作量大,该工程师不能参与这个项目.项目经理下一步应该怎么做? A.修改进度计划,以适应该资源 B.与职能经理协商该资源的参与 C.培训项目团队中 ...

  5. Django的反向解析

    Django的请求生命周期是指用户在浏览器访问网页时,Django根据网址在路由列表里查找相应的路由,在从路由里找到视图函数或视图类进行处理,将处理结果作为相应内容返回浏览器并生成网页内容. 这个生命 ...

  6. 自定义Lock实现

    1 package com.wyt.lock.test; 2 3 import java.util.concurrent.LinkedBlockingQueue; 4 import java.util ...

  7. Python条件语句和基本数据类型

    1.if基本语句 if 条件: 内部代码块 else: ...... 2.if支持嵌套 if 1 == 1: if 2 == 2: print('走一步') else: print('走两步') el ...

  8. mxArray 和 mwArray 的区别

    首先,mxArray是MatlabC 函数库的结构体,而mwArray是Matlab C++ 函数库中对mxArray的包装 类. 其次,二者的内存管理方式不同.mxArray的内存管理方式比较松散, ...

  9. [2002年NOIP普及组] 选数

    已知 n 个整数 x1,x2,-,xn,以及一个整数 k(k<n).从 n 个整数中任选 k 个整数相加,可分别得到一系列的和.例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时, ...

  10. 一、100ASK_IMX6ULL嵌入式裸板学习_LED实验(中)

    以C语言方式驱动(例程与代码分析) 韦东山的例程: start.s部分: .text .global _start @全局标号 _start: //设置栈 ldr sp,=0x80200000 @设置 ...