js数组(1)

05-数组

了解数组

字面量的创建方式

var arr = [ 1, 2, 3, 4 ];

每一个数据中间用逗号隔开;

通过内置函数创建数组

var arr = new Array(  )

[注]:若只有一个数字的时候如“var arr = new Array( 5 )” 则代表一个有五个元素的数组;

通过设置数组的长度,来设置数组元素的个数  .length( 获取数组的长度);

例如:

var arr=[1,2];

arr.length = 4;

console.log(arr[4]);//undefined

数组的索引,也叫作数组的下标

[注]:数组的索引从0 开始 到数组的长度减1

var arr = [1,2,3,4,5,6]

console.log(arr);

我们可以通过数组的索引下边访问数组中的元素,通过数组关联法

console.log(arr[0]); //输出 1;

console.log(arr[3]);//输出 3;

[注]:数组下标的最大值是数组长度减1

拓展(了解)

数组对象的元素是动态添加的,如果没有就添加,有就改变

arr[4] = 'str';

console.log(arr);  // [1, 2, 3, empty, "str"]

console.log(arr[4]); // str

console.log(arr.length);

设置长度为0,就会将数组清空

var arr = [1,2,3];

console.log(arr);

arr.length = 0;

console.log(arr);// 0

了解对象

字面解释:

对象----是一个数据类型,复杂数据类型,对象就是一个无序数据的集合

对象中的数据是以键值对的形式存储  key=value;

对象中的键值对,很多时候也叫做对象的属性和属性值(方法)

对象的语法: {}  是一个空对象

{key:value}   {key1:value1,key2:value....}

对象中

键 :就是键值对中的 键 ,对象中的键的类型只能数字符串,在对象中可以用单引号包裹,也可以没有

键值: 对象中的键值可以数任意的数据类型

键值对,键和值用冒号连接,多个键值对用逗号连接

创建对象

1.通过内置构造函数创建对象

var obj1 = {}  // 空对象

console.log(obj1);

var obj2 = {name:'leon',age:32};

console.log(obj2);

2. 通过内置构造函数创建对象

var obj3 = new Object();  // 空对象

console.log(obj3);

对象属性的访问方式

点语法  对象.属性名

console.log(obj.name);

console.log(obj.age);

console.log(obj.like);

数组关联法  对象[属性名]  , 属性名用引号包裹

console.log(obj['name']);

console.log(obj['age']);

对象属性进行赋值

对象添加属性 可以使用点语法 给属性赋值

obj.score = 100;

使用数组关联法

obj['height'] = '171cm'

删除对象中的属性  delete 对象.属性名

console.log(obj);

delete obj.height;

console.log(obj);

拓展(了解)

添加对象的属性和属性值,变量attrName中的值作为属性名,arrtValue中的值作为属性值

添加对象属性的时候,如果属性名是一个变量,不能通过点语法添加,只能用数组关联法

var attrName = 'eat';

var attrValue = 'rice';

obj[attrName] = attrValue;

console.log(obj);

数据的存储区别

栈空间

基本数据类型在内存中,都是存储在栈空间

基本数据类型的变量之间进行赋值,两个变量互不影响

堆空间

复杂数据类型在内存中,数据存储在堆内存空间,变量存储在栈内存中,变量中存储的是数据的空间地址

复杂数据类型的变量之间的赋值,是地址的赋值;赋值后两个变量操作同一个数据空间

数组的操作方法

pop 删除数组中的最后一个元素;

语法:数组.pop();

会改变原来数组;

返回值:删除的元素;

push 添加一个元素在数组的末尾(最后面);

语法: 数组.push(参数)      参数就是要添加的元素

会改变原始数组

返回值:数组改变后的长度

shift 删除数组开头的第一个元素;

语法: 数组.shift()

会改变原始数组

返回值: 删除的元素

unshift 添加一个元素在数组的开头(最前面)

语法:数组.unshift(参数) 参数是要添加的元素

返回值:  改变后的数组长度

splice 截取数组中的元素

语法1:数组.splice(参数1,参数2)  参数1:下标    参数2:截取的个数

会改变原来的数组

返回值为截取的数组;

var arr = [1,2,3,'hello',4,5,6];

var res = arr.splice(1,3);

console.log(res);

console.log(arr);

语法2:数组.splice(参数1,参数2,参数3)  参数1:下标    参数2:截取的个数    参数3:替换的内容;

会改变原来的数组

返回值为截取的数组;

var arr = [1,2,3,'hello',4,5,6];

var res = arr.splice(0,4,'nihaosao');

console.log(res);

console.log(arr);

slice  截取数组中的元素

语法:数组.slice(起始下标,结束下标)截取数组中元素生成新的数组(看前不看后)

[注]:结束下标可以使用负值,-1表示从数组的最后一个开始(类似倒序截取)

不会改变原来数组;

返回值:截取的新数组;

var arr = [1,2,3,'hello',4,5,6];

var res = arr.slice(1,3);

console.log(res);

console.log(arr);

var res = arr.slice(0,-1);

console.log(res);

concat  数组拼接

语法:数组.concat(参数)参数可以是某一些元素,可以是数组;

不会改变原来的数组

返回值:拼接后的数组

var arr = [1,2,3,'hello',4,5,6];

var res = arr.concat(7);

console.log(res);

console.log(arr);

var tmp = [7,8,9];

var res = arr.concat(tmp);

console.log(res);

sort  数组的排序

语法1:数组.sort()将数组进行排序

排序是按照第一个数进行排序的

语法2:数组.sort(function(a,b){a-b});

var arr = [2,1,5,6,3,4];

var res = arr.sort(function(a,b){

      return a-b;|| return b-a(两者的顺序颠倒)

    })

console.log(res);

var arr2 = [111,33,2222];

console.log(arr2.sort(function(a,b){return a-b}));

reverse  数组反转

语法:数组.reverse();

改变原来数组

返回值:颠倒后的数组;

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

  console.log(arr.reverse());

  console.log(arr);

join  改变数组之间的连接符;

语法:数组.join(“参数”) 若参数空白表示默认逗号

不会改变数组

返回值:拼接后的字符串

console.log(arr.join('-'));

console.log(arr);

var arr = [1,2,3,4];

console.log(arr.join());

indexOf  返回元素数组的下标

语法:数组.indexOf(参数)

返回值:参数的下标,若没有这个参数则返回-1;

var arr = [1,2,3,45];

console.log(arr.indexOf(3));//45

console.log(arr.indexOf(4));//-1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容