javascript对象——数组对象
1.数组(Array)
数组(Array):就是一组数据的集合,存储在单个变量下的优雅的方式
2 创建数组
1.)利用new创建数组
var arr1 = new Array(2)
(里面只有一个值)这里的2 表示 数组的长度为2,里面有两个空的数组元素
var arr1 = new Array(2, 3)
里面放两个值及以上,就相当于创建了一个数组)等价于使用字面量创建[2,3],这样写表示里面有两个元素,是2和3
console.log(arr1)
2.)利用数字字面量创建数组 []
var arr = [];
创建一个空的数组
数组里面的数值之间可以通过逗号进行分割
var arr1 = [1, 2, 'pink', true]
这种声明数组并赋值我们称之为数组的初始化
数组里面的数据 比如1,2,'pink老师',true ,我们称之为数组元素.
3.检测是否为数组
1)instanceof 运算符 它可以用来检测是否为数组
var arr = [];console.log(arr instanceof Array);
案例:翻转数组:
// 翻转数组补充function reserve(arr) {// if (arr instanceof Array) {//第一种判断是否为数组的方式if(Array.isArray(arr)){//第二种判断是否为数组的方式var newArr = [];newArr.length;for (var i = arr.length - 1 ; i >= 0; i--) {newArr[newArr.length] = arr[i];}return newArr;} else {return '这个参数要求必须是数组格式'}}console.log(reserve([1,3,4,5,6]));//正常将数组进行翻转然后输出console.log(reserve(1,3,4,5,6));//因为该数组传入的不是数组,所以正常打印输出这个参数要求必须是数组格式
2)Array.isArray() (H5新增 ie9以上的版本才可以支持) 也是检测是否为数组 返回值 只有false 和 true
var arr=[];var obj={};console.log(Array.isArray(arr)); //输出arr是一个数组 trueconsole.log(Array.isArray(obj)); // 输出obj不是一个数组 false
4.添加数组元素
1)push() 在我们数组的末尾 添加一个或者多个数组元素 push 在末尾进行追加
var arr=[1,2,3];arr.push(4,'pink')console.log(arr)// 追加的元素在push里面用逗号进行分开
注意点:1)push 是可以在数组末尾追加新的元素
2)push() 参数在括号里面直接写数组元素就可以了
3)push 完毕之后 ,返回的结果是新数组的长度
4) 原数组也会发生变化
2)unshift 在我们数组的开头,添加一个或者多个数组元素 unshift是在数组开头进行添加
arr.unshift('red','pink')console.log(arr)// 这里进行打印同一个数组,会对之前的数组进行追加
注意点: 1)unshift 是可以在数组开头追加新的元素
2)unshift() 参数在括号里面直接写数组元素就可以了
3)unshift 完毕之后 ,返回的结果是新数组的长度
4) 原数组也会发生变化
5,删除数组元素
1)pop()他可以删除数组的最后一个元素
console.log(arr.pop());console.log(arr);
注意点:1)pop 是可以删除数组的最后一个元素,记住一次只能删除一个元素
2)pop() 是没有参数的
3)pop完毕之后 ,返回的结果删除的那个数组
4) 原数组也会发生变化
2)shift() 他可以删除数组的第一个元素
console.log(arr.shift());console.log(arr);
注意点: 1)shift 是可以删除数组的第一个元素,记住一次只能删除一个元素
2)shift() 是没有参数的
3)shift 完毕之后 ,返回的结果删除的那个数组
4) 原数组也会发生变化
6. splice(star,num,insert) 通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。
star 删除元素开始的位置 num删除元素的个数 insert 是想要插入的元素
var arr11=[1,2,3];var splice=arr11.splice(2,1);// splice(stare,num) 里面的第一个数字代表的是,删除数组元素的起始位置,第二个数字是需要删除几个元素console.log(splice);console.log(arr11)var arr12=[1,2,3,4,5,6,7,8,9];var splice=arr12.splice(2,1,'red'); // 从第二个元素开始,删除一个元素,并追加为redconsole.log(arr12)
7. slice 截取指定开始位置到结束位置的字符串。
var str18 = ['ab','aas','dff','ggg','hhj','jkk','gfd','dss','sss',3,4,4,3,3,3,4];console.log(str18.slice(2, 10));// slice 的截取数值的方式这里面的数字2是开始的索引号位置,10是截取的结束索引号位置,但是截取的方式为[start,end)var str19 = ['ab','aas','dff','ggg','hhj','jkk','gfd','dss','sss',3,4,4,3,3,3,4];console.log(str19.slice(-4));//表示提取原数组中的倒数第四个元素到最后一个元素(包含最后一个元素)。var str20 = ['ab','aas','dff','ggg','hhj','jkk','gfd','dss','sss',3,4,4,3,3,3,4];console.log(str20.slice(5, -2));//表示从第索引号为5的元素开始抽取,抽取到数组的倒数第二个元素(但是不包含倒数第二个元素)// slice的参数不支持slice(begin,end) begin为负数,end为正数,因为slice里面为负值时,是从倒数第一个元素开始抽取,如果抽取开始的位置为负,停止的位置为正,则不会显示结果
8. concat()方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
var arr21=['a','b','c'];var arr22=[1,2,3];var arr23=arr21.concat(arr22);console.log(arr23);
小练习:筛选数组元素案例:要求将[1500,1200,2000,2100,1800]里面大于2000的删除,剩余的数字放到新的数组里面
var arr=[1500,1200,2000,2100,1800];var newArr=[];for (var i=0 ;i<arr.length;i++){if(arr[i]<2000){// newArr[newArr.length]=arr[i];newArr.push(arr[i]);}}console.log(newArr)
9.数组排序
1)翻转数组 reverse
var arr=['关羽','张飞','马超','赵云','黄忠','刘备','诸葛亮','姜维','pink'];arr.reverse();console.log(arr);
2)数组排序(冒泡排序)
var arr1=[1,4,56,87,34,97];arr1.sort(function(a,b){return a - b; //按照升序的顺序排列// return b - a; //按照降序的顺序排列});console.log(arr1);
10.获取索引值的方法
1)indexOf(数组元素,起始位置) 这里的起始位置,就是从所要求开始查找的地方进行查找
作用:1)作用就是返回该元素的索引号 从前面开始查找
2)它只返回一个第一个满足条件的索引号
3)它如果在该数组里面找不到元素,返回的就是 -1
var arr=['关羽','张飞','马超','赵云','黄忠','刘备','诸葛亮','姜维','pink'];console.log(arr.indexOf('诸葛亮'));
2)lastIndexOf(数组元素,起始位置)
作用:1)作用就是返回该元素的索引号 从后面开始查找
2)它只返回一个第一个满足条件的索引号
3)它如果在该数组里面找不到元素,返回的就是 -1
console.log(arr.lastIndexOf('诸葛亮'));//索引号的顺序是不会更改的,只不过lastIndexOf是从后面开始查找
11.数组转化为字符串
1)toString() 将我们的数组转换为字符串
var arr=[1,2,3];console.log(arr.toString());// 这里输出的结果就是 1,2,3 这里是转换为字符串进行输出
2)join(分隔符)
var arr1=['green','blue','pink'];console.log(arr1.join());// 输出的结果为:green,blue,pink//里面没有添加分隔符,默认情况是使用逗号进行分割console.log(arr1.join('-'));// 输出的结果为:green-blue-pink//分隔符使用的是-进行分隔,打印输出的时候就是使用 - 进行分隔
数组去重案例:(重点) ['c','a','z','a','x','x','c','b','a']对该数组去除重复数据
核心算法:我们遍历旧数组,然后拿着旧数组元素去查询新数组,如果该元素在新数组里面没有,我们就添加,否则就不添加
如何判断元素是否存在:利用数组 indexOf(数组元素),如果返回的是-1 就说明数组里面没有该数组元素,返回值不是-1,就说明里面已经存在该数组元素。
function unique(arr){var newArr=[];for(var i=0 ; i<arr.length ; i++){if (newArr.indexOf(arr[i])==-1){//判断旧数组当中的元素在新数组当中的返回值是否为-1newArr.push(arr[i]);// 返回值是-1就追加到新数组当中}}return newArr;}var demo=unique(['c','a','z','a','x','x','c','b','a']);console.log(demo);
javascript对象——数组对象相关推荐
- JavaScript获取数组对象里面的键(key)和值(value)
JavaScript获取数组对象里面的键key和值value对象键值 知识回调 场景复现 三种方法获取数组对象里的键值 1.Object.keys() 2.Object.entries(obj) 3. ...
- 综合演练 对象数组 对象的方法 我们9203班 0912
综合演练 对象数组 对象的方法 我们9203班 0912 需求 需要有一个班级对象,对学生对象进行管理 班级类说明 类名称MyClass 属性,name,班级名称,初始值9203 班级有29名学生,定 ...
- android 接收js对象数组,java怎么接收js 数组对象数组对象
java怎么接收js 数组对象数组对象 [2021-02-04 22:25:34] 简介: php数组转js数组对象的方法:首先获取[$arr]数组:然后使用函数[json_encode()]将数组 ...
- Javascript的数组对象
创建和定义数组: 1.r mycars=new Array(); //不定义数组的长度,可以随意放值 mycars[0]="1" mycars[1]="2"2. ...
- JavaScript类数组对象参考
JavaScript和DOM中有很多类数组对象,它们有以下特点 1.有length属性 2.可以使用[]通过下标访问 3.部分类数组对象使用[]访问成员时不只可以使用下标,还可以使用id或name 4 ...
- JavaScript:数组对象去重的几种方法
数组对象去重 元素是对象类型的数组的去重我这粗分为两类,一类是当数组中整个元素一样时的去重(这里说的一样是指元素对象中的属性和值都一样),第二类是,元素对象中的某一个属性的值一样时进行去重 // 通用 ...
- JavaScript中数组对象方法总结
目录 如何创建一个数组 数组的类型转换与检测 解构赋值及三点运算符(展开语法) 数据出栈入栈操作 splice与slice实现数组的增删改查 清空数组的多种操作 拆分和合并 数组的查找 include ...
- java ajax json 解析json数组对象数组对象数组对象数组_ajax传递包含对象数组的json数据...
一个简单的demo.用户在前台页面表单输入数据表的信息,数据传递到后台,系统自动在后台创建数据库表(table)的功能. 作为简单demo,这里的表只有"表名","列名& ...
- json 解析 转java对象数组对象数组对象_json字符串转java对象数组
需要引入json-lib-2.2-jdk15.jar和ezmorph-1.0.6.jar包 String itemStar = request.getParameter("itemStar& ...
- php怎么创建对象数组对象数组对象,在PHP中把对象当数组使用
在PHP中把对象当数组使用 我们了解,JAVASCRIPT中,对象的属性.方法,是可以用数组的模式来访问的.但通常情况下是不可能的. 为什么要这么做?这是因为,通过这一方式,可以更加方便地操作对象,我 ...
最新文章
- python 获取中文文件名的输出
- plsql与64位的Oracle关联方法
- 4G+宽带高歌猛进:移动双线虐杀联通
- python-语言播报
- 【HTML+CSS】练习:百度首页模拟
- 013. MVC5过滤器
- 爱的回忆(散文诗 长篇连载)
- jdk api 1.8 中文版 下载
- Objective C TCP 通讯实例
- 【5G手机漏接电话问题解决方式】
- QtCharts:给QChartView换肤,换背景色添加背景图片
- 何钦铭.c语言程序设计,《C语言程序设计》 - 何钦铭
- 最新2018.1.1深度学习平台搭建 Win10+GPU+Tensorflow+keras+CUDA --2018.1.1
- Python兔子繁衍问题
- 华为中兴为何对未来信心十足?
- AR红包大战,抢的不是钱而是发展机会
- Apollo第五讲——Apollo定位模块
- 小功率直流电机的驱动电路
- 一名武大同学的春招48小时
- 学习java的第17天
热门文章
- ECM(Enhanced Compression Model )新技术
- angularJs的input验证提醒
- 游戏设计模式杂谈(一)
- 后台基础权限框架搭建实现[木字楠博客]
- 『黑马全攻略』之入学论坛篇
- 最新版idea申请学生免费使用方法
- 【ENVI条件下的GF6-WFV数据处理相关问题】——想到哪里写到哪里
- mysql用macbookair,Macbook air OS X Yosemite10.10.5安装MYSQL
- 员工信息管理系统语言论文c,C语言课程设计 职工信息管理系统.doc
- Java 期末试题之GeoJSON