资讯专栏INFORMATION COLUMN

聊聊javascript中的数组

Towers / 2667人阅读

摘要:数组定义数组数组名称元素元素定义空数组前端定义数组同时添加不同类型的元素构造函数方式数组名称元素,元素数组名称类型,表示数组的长度存在元素的个数用创造出一个空数组的构造函数前端用创造一个空数组的构造函数并添加元素函数方式定义数组名称元素,元

数组 定义数组

1.var 数组名称 = [元素1,元素2,...];

var arr=[];//定义空数组
var arr1=[100,"前端",true,undefined];//定义数组同时添加不同类型的元素

2.构造函数方式

var 数组名称 = new Array(元素1,元素2,...);
var 数组名称 = new Array(length);
length:number类型,表示数组的长度(存在元素的个数)

var arr=new Array();//用new创造出一个空数组的构造函数
var arr1=new Array(100,"前端",true,undefined);//用new创造一个空数组的构造函数并添加元素

3.函数方式定义

var 数组名称 = Array(元素1,元素2,...);
var 数组名称 = Array(length);
length:number类型,表示数组的长度(存在元素的个数)

var arr=Array();//定义一个空数组
var arr1=Array(100,"前端",true);//定义一个空数组并添加元素
var arr2=Array(20);//定义一个数组并给它开20个位置
索引数组

表示数组中元素的位置使用数字值来表示的
数字值:表示元素的位置,也就是下标
数组的长度与元素的个数是一致的

var arr=[];//定义一个空数组
arr[0] = "大前端";
arr[1] = true;
关联数组

表示数组中元素的位置使用字符串来表示
注意关联数组的数组长度与元素个数不一致,length在关联数组中失效

var arr=[];//定义一个空数组
arr["name"] = "孙悟空";
arr["age"] = 500;
arr["job"] = "花果山美猴王";
稀疏数组

数组的长度与元素的个数不一致的,索引数组的位置允许不连续的,没有定义元素的位置默认为空

var arr=[];
arr[0] = "美猴王";
arr[3] = 500;
arr[5] = "花果山";
访问数组的元素

数组名称[索引值]

var arr=["大前端",100,null];//定义数组
console.log(arr[0]);//输出arr中0位置的内容
console.log(arr[5]);//访问arr中位置5的内容,虽然不存在,但是也不报错,返回undefined
数组的复制
var num=100;
var res=num;
console.log(num);//输出结果:100
console.log(res);//输出结果:100

num=200;
console.log(res);//输出结果:100
//复制变量里的值,不管原变量怎么改动值,都不影响复制它值的另一个变量的值

var arr=["大前端",100,true];
var arr1=arr;
console.log(arr);//输出结果:["大前端",100,true]
console.log(arr1);//输出结果:["大前端",100,true]

arr=[100];
console.log(arr);//输出结果:[100]
console.log(arr1);//输出结果:["大前端",100,true]

arr[0]=100;
console.log(arr);//输出结果:[100,100,true]
console.log(arr1);//输出结果:[100,100,true]
/*复制一个数组,如果被复制的原数组,只会把原数组中的存储地址位置赋值给另一个数组,
另一个数组会跟它一起通过地址位置连接到同一个存储位置,如果原数组修改自己里面的值
会影响另一个数组,如果原数组直接重新赋值一个新数组,则不影响另一个数组*/
数组的修改
//索引数组的修改
var arr=["大前端",100];
arr[0]="前端";

//关联数组的修改
var arr1=[];
arr1["name"]="孙悟空";
arr1["age"]=500;
arr1["name"]="唐僧";
数组的删除
//索引数组的删除
var arr1=["大前端",true];
delete arr1[0];

//关联数组的删除
var arr2=[];
arr2["kecheng"]="大前端";
arr2["name"]="张三";
delete arr2["kecheng"];
循环遍历数组
var arr = ["前端", 200, true, undefined];
// while语句
var i = 0;
while (i < arr.length){
    console.log(arr[i]);
    i++;
}

// do...while语句
var i = 0;
do {
    console.log(arr[i]);
    i++;
} while (i < arr.length);

// for语句
for (var i=0; i
for...in语句

for语句:循环的开始和结束,都是由程序员决定的
for..in语句:循环只能从开始到结束

var arr = ["前端", 100, true, undefined];
/*
    for (var 变量 in 数组) {
        代码段
    }
    * 变量:得到的是数组的索引值
 */
for (var i in arr) {
    console.log(arr[i]);
}

// 关联数组的length属性为 0
var arr1 = [];
arr1["name"] = "张三";
arr1["age"] = 28;
arr1["job"] = "程序员";

// for..in语句可以循环遍历关联数组, for语句不行
for (var i in arr1) {
    console.log(arr1[i]);
}

// 稀疏数组 - 数组的长度与元素的个数不一致
var arr2 = [];
arr1["name"] = "李四";
arr1["age"] = 89;
arr1["job"] = "运动员";

// for..in语句循环遍历稀疏数组(直接得到有效元素值), for语句不行
for (var i in arr2) {
    console.log(arr2[i]);
}
二维数组
var arr = [];// 定义一个空数组
arr[0] = [苹果X,8999,2017];
arr[1] = [小米,999,2016];
arr[2] = [华为,4563,2017];

console.log(arr);
// 访问二维数组中的元素
var result = arr[0];
console.log(result[0]);
console.log(arr[0][0]);

// 循环遍历二维数组
for (var i=0; i           
               
                                           
                       
                 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96777.html

相关文章

  • 聊聊javascript数组的使用

    摘要:在中,数组里可以容纳容纳中任何类型的值。方法大全在中数组是可修改的对象,每个数组都有着很多好用的方法,大多数我们日常都会常用。把元素添加到数组的头部。利用使用下标进行操作。对当前数组中的每一项运行给定的函数返回函数结果为的项组成的数组。 杂谈     数组是最简单的内存数据结构,也是js中最常用的类型之一,整理了下我觉得应该了解数组的相关知识。 在js中,数组里可以容纳容纳js中任何...

    zone 评论0 收藏0
  • 聊聊jQuery的反模式

    摘要:如果我们认为模式代表一个最佳的实践,那么反模式将代表我们已经学到一个教训。受启发于的设计模式,在年的月的报告大会上首次提出反模式。参考链接反模式学用设计模式极客学院 如果我们认为模式代表一个最佳的实践,那么反模式将代表我们已经学到一个教训。受启发于Gof的《设计模式》,Andrew Koeing在1995年的11月的C++报告大会上首次提出反模式。在Koeing的报告中,反模式有着两...

    CoderStudy 评论0 收藏0
  • 聊聊 Array 中的

    摘要:原文翻译疯狂的技术宅本文首发微信公众号欢迎关注,每天都给你推送新鲜的前端技术文章类型检测假设是一个数组,我们想要实现一些功能。将为数组返回,即使它们是在另一个中创建的。本文首发微信公众号欢迎关注,每天都给你推送新鲜的前端技术文章 原文:https://jakearchibald.com/201...翻译:疯狂的技术宅 本文首发微信公众号:jingchengyideng欢迎关注,每天都...

    songze 评论0 收藏0
  • 聊聊柯里化

    摘要:举个例子,如果我们实现一个三个数的加法函数,需要这么实现如果我们将其柯里化变换成接受一个单一参数的函数,并且返回接受余下的参数而且返回结果的新函数,我们的调用方式应该是这样的。 仅以此文献给我的学弟 誅诺_弥 ,并将逐风者的祝福送给他:英雄,愿你有一份无悔的爱情! 什么是柯里化 维基百科中有如下定义: 在计算机科学中,柯里化(英语:Currying),是把接受多个参数的函数变换成接受一...

    yankeys 评论0 收藏0
  • 聊聊怎么写react-native上的样式吧

    摘要:我们来看看文档上是怎么说的吧在中,你并不需要学习什么特殊的语法来定义样式。我们仍然是使用来写样式。这些样式名基本上是遵循了上的的命名,只是按照的语法要求使用了驼峰命名法,例如将改为。 我遇到了什么问题? 不久之前我重构了一个古老的项目,总结了一些js方面的想法,不过对于一个前端项目而言不仅仅只由js组成的嘛,上学的时候老师和我说HTML+CSS+JS对应的是页面的骨架、皮肤和肌肉。既然...

    Dionysus_go 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<