热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JS对象Array属性要领汇总

属性名形貌prototype为对象增加属性、要领constructor返回数组对象援用length返回数组元素数量要领名形貌返回变动原数组concat()衔接多个数组衔接后新数组N
属性名形貌
prototype为对象增加属性、要领
constructor返回数组对象援用
length返回数组元素数量
要领名形貌返回变动原数组
concat()衔接多个数组衔接后新数组N
join(”)将数组中一切元素合为一个字符串。按分开符分别兼并后新数组N
toString()数组转换为字符串( 与无参join雷同,逗号衔接)转换后字符串N
pop()删除数组末了一个元素(栈顶)删除的元素值Y
push()向数组的末端增加一个/多个元素新数组长度Y
shift()删除数组第一个元素删除的元素值Y
unshift()向数组的开首增加一个/多个元素新数组长度Y
reverse()倒置数组中元素的递次倒序后数组Y
slice(start,end)截取从start到end子数组(end省略为数组末端)截取子数组N
splice()(start,length,item1,item2,…)删除元素并增加新元素删除子数组Y
sort()对数组的元素举行排序(可自定规律)排序后数组Y
valueOf()返回 Array 对象的原始值Array对象N
indexOf()返回元素在数组中初次涌现的位置(严厉婚配===)下标/-1N
建立 Array 对象

new Array();
new Array(size);
new Array(element0, element1, ..., elementn);
var arr = []; //字面量体式格局

经测试用字面量体式格局跟new Array()耗时差不多,运用习气的差异吧~ new Array()能初始化长度~

属性

prototype 向对象增加属性和要领

function em(A,B)
{
this.A = A;
this.B = B;
}
var e = new em("AA","BB");
em.prototype.C = null;
e.C = 20000;
console.log(e.C); //20000
console.log(e); //em {A:"AA" , B:"BB" , C : 20000 }

constructor 返回对建立此对象的数组函数的援用

function employee(name,job)
{
this.name = name;
this.job = job;
}
var bill = new employee("Bill");
console.log(typeof bill.constructor); // function
console.log(bill.constructor); //function employee(name){this.name=name;this.job=job;}
要领

concat() 衔接两个或更多的数组(返回被衔接数组的副本)

var arr = [1, 2, 3];
var arr1 = [6, 7];
console.log(arr.concat(4, 5, arr1)); //[1, 2, 3, 4, 5, 6, 7]

join() 把数组的一切元素放入一个字符串,元素经由过程指定的分开符分开。

var arr = ['item 1', 'item 2', 'item 3'];
var list = '

  • ' + arr.join('
  • ') + '
'; //'
  • item 1
  • item 2
  • item 3
'

toString() 数组转换为字符串(与无参的 join()要领返回的串雷同)

var arr = new Array(3)
arr[0] = "A"
arr[1] = "B"
arr[2] = "C"
console.log(arr.toString()); //"A,B,C"

pop() 删除数组的末了一个元素,数组长度减 1,并返回被删除的元素的值

若数组为空,则pop()返回undefined值

var arr = ["A", "B", "C"];
console.log(arr); //["A", "B", "C"]
console.log(arr.pop()); //"C"
console.log(arr); //["A", "B"]

push() 向数组的末端增加一个或更多元素,并返回新的长度

var arr = ["A", "B", "C"];
console.log(arr); //["A", "B", "C"]
console.log(arr.push('D')); //4
console.log(arr); ////["A", "B", "C" , "D"]

reverse() 倒置数组中元素的递次

var arr = ["A", "B", "C"];
arr.reverse();
console.log(arr);// ["C", "B", "A"]

slice(start,end) 从数组中返回选定的子数组

var arr = ["A", "B", "C"];
// 从第一个元素最先截取到数组末端
console.log(arr.slice(1)); //["B", "C"]
console.log(arr); //["A", "B", "C"]

splice() 删除元素,并向数组增加新元素
(直接对数组操纵)

① 删除指定局限的数组元素:

var arr = new Array(6);
arr[0] = "A";
arr[1] = "B";
arr[2] = "C";
arr[3] = "D";
arr[4] = "E";
arr[5] = "F";
console.log(arr); //["A", "B", "C", "D", "E", "F"]
// 删除第三个元素今后的三个数组元素(包括第三个元素)
console.log(arr.splice(2, 3)); //["C", "D", "E"]
console.log(arr); //["A", "B", "F"]

② 从指定下标最先插进去指定元素(元素个数不限):

var arr = new Array(6);
arr[0] = "A";
arr[1] = "B";
arr[2] = "C";
arr[3] = "D";
arr[4] = "E";
arr[5] = "F";
console.log(arr); //["A", "B", "C", "D", "E", "F"]
console.log(arr.splice(2, 0, "AA","BB")); // []
console.log(arr);//["A", "B", "AA" , "BB" , "C", "D", "E", "F"]

③ 删除指定局限的数组元素,并用指定元素替代(元素个数不限):

var arr = new Array(6);
arr[0] = "A";
arr[1] = "B";
arr[2] = "C";
arr[3] = "D";
arr[4] = "E";
arr[5] = "F";
console.log(arr);//["A", "B", "C", "D", "E", "F"]
console.log(arr.splice(2, 1, "AA","BB")); // ["C"]
console.log(arr); //["A", "B", "AA", "BB", "D", "E", "F"]

sort() 对数组的元素举行排序
对数组的援用

数组在原数组上举行排序,不天生副本。该要领默许是根据字符编码(ASCII)的递次举行排序的

var arr = new Array(3);
arr[0] = "D";
arr[1] = "S";
arr[2] = "A";
console.log(arr); //["D", "S", "A"]
console.log(arr.sort()); //["A", "D", "S"]

自行指定排序划定规矩。以下:

var arr = new Array(6);
arr[0] = 10;
arr[1] = 5;
arr[2] = 40;
arr[3] = 25;
arr[4] = 1000;
arr[5] = 1;
console.log(arr); //[10, 5, 40, 25, 1000, 1]
//升序
console.log(arr.sort(function (a, b) {return a - b;}));// [1, 5, 10, 25, 40, 1000]

valueOf() 返回响应的原始值

var arr = new Array(2);
arr[0] = 10
arr[1] = 5
console.log(arr); //[10, 5]
console.log(typeof arr.valueOf()); //object
console.log(arr.valueOf()); //[10, 5]

shift() 删除并返回数组的第一个元素

var arr = ["A", "B", "C"];
console.log(arr); //["A", "B", "C"]
console.log(arr.shift()); //A
console.log(arr); //["B", "C"]

unshift() 向数组的开首增加一个或更多元素,并返回新的长度

var arr = ["A", "B", "C"];
console.log(arr); //["A", "B", "C"]
console.log(arr.unshift("AA")); //4
console.log(arr);//["AA", "A", "B", "C"]

indexOf() 返回元素在数组中涌现位置

额 之前一向认为只要string有这个要领… 补上补上

var arr = ['orange', '2016', undefined , null ,NaN];
console.log(arr.indexOf('orange')); //0
console.log(arr.indexOf('o')); //-1
console.log(arr.indexOf('2016')); //1
console.log(arr.indexOf(2016)); //-1
console.log(arr.indexOf('undefined')); //-1
console.log(arr.indexOf(null)); //3
console.log(arr.indexOf(NaN)); //-1

以上只是为了论证这里的indexOf运用的是严厉婚配(===),不会像string的indexOf一样隐式转换成字符串举行婚配~


推荐阅读
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • Java自带的观察者模式及实现方法详解
    本文介绍了Java自带的观察者模式,包括Observer和Observable对象的定义和使用方法。通过添加观察者和设置内部标志位,当被观察者中的事件发生变化时,通知观察者对象并执行相应的操作。实现观察者模式非常简单,只需继承Observable类和实现Observer接口即可。详情请参考Java官方api文档。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
author-avatar
_雁火漫天_
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有