创建数组

  1. 字面量 var arr = []
  2. 构造函数 var arr = new Array()
  3. 不使用new var arr = Array()
    所有数组都继承于Array.prototype,能使用其中的数组方法
    数组是另一种形式的对象,访问机制相同
  4. 数组的empty项打印出来是undefined,empty不是值只是一个空的标识
  • 稀松数组
    最后一个,后若是空值,则不计入(最后一个逗号忽略)
    并非每位都有值
  • 使用构造函数,不能有空值,否则报语法错误
  • new Array()的参数用于设置数组长度,或设置数组
  • 数组是对象的另一种形式

数组方法

  • 数组方法 - 继承了数组原型上的方法

push、unshift

  • push、unshift(返回值:执行了方法以后数组长度)

  • push在最后加,unshift在头部加

  • 可以添加多个

  • 手写push方法

Array.prototype.myPush = function () {let arr = this // 谁调用,this就指向谁for (var i = 0; i < arguments.length; i++) {arr[arr.length] = arguments[i]arr.length++ // 长度自增}return arr.length
}
var arr = [1, 2, 3]
console.log(arr.myPush(4, 5, 6)) // 6
console.log(arr) // 123456

pop、shift

  • 剪切、返回剪切掉的那个值
  • 无参数
  • pop剪切末位、shift剪切首位

reverse

  • 倒序

splice

  • arr.splice(开始项的下标,删除长度,删除以后在当前指针开始添加数据)

  • 第三个参数可以传多个值(添加多个值)

  • 用于添加时,理解为在哪个下标添加

  • 返回值空数组

  • 可传负数,最后一位的index认为是-1,在index前添加

  • 用splice重写unshift

  • sort return 0

sort

  • 返回排序后的数组
  • sort是按照ASCII码排列的(未传参时)
  • 传fn,定义排序方式
  • 升序排return负值(a-b),降序排return正值(b-a)
  • 随机排序
  • 对象

练习

  1. 用splice方法重写原型上的unshift方法
Array.prototype.myUnshift = function () {this.splice(0, 0, ...arguments)return this.length
}
var arr = [3, 4, 5]
console.log(arr.myUnshift(1, 2)) // 5
console.log(arr) // 1 2 3 4 5

or

Array.prototype.myUnshift = function () {var fontArr = Array.prototype.slice.call(arguments)return fontArr.concat(this)
}
var arr = [3, 4, 5]
console.log(arr.myUnshift(1, 2)) // 5
  1. 按照字节数排列数组[]
var arr = ['夜阑人静初', '响起了', '悠悠的Saxophone']
function computeByte(str) {var byte = str.lengthfor (var i = 0; i < str.length; i++) {let code = str.charCodeAt(i)byte += code > 255 ? 1 : 0}return byte
}
console.log(arr.sort(function (a, b) {return computeByte(a) - computeByte(b)
}))

ES5-15 数组基础、数组方法、数组排序相关推荐

  1. JavaScript的数组基础数组进阶单元知识点

    目录 一.数组基础 二.数组的基本操作 三.数组对象 四.数组展开运算符 五.数组配合剩余参数 六.数组解构 七.数组对象解构 八.forEach遍历数组 九.filter 筛选数组 十.Array数 ...

  2. asp子窗口读取父窗口数据_算法与数据结构基础 - 数组(Array)

    数组基础 数组是最基础的数据结构,特点是O(1)时间读取任意下标元素,经常应用于排序(Sort).双指针(Two Pointers).二分查找(Binary Search).动态规划(DP)等算法.顺 ...

  3. ES6/02/创建对象,构造函数和原型,原型和原型链,this指向,类,ES5新增的方法,数组方法,回调函数,ES5新增的字符串方法,ES5中新增的对象方法

    创建对象 1,利用new Object()创建对象 var obj1 =new Object(); 2,利用对象字面量创建对象 var obj2={}; 3,利用构造函数创建对象 function S ...

  4. Java基础(五):数组和Java方法

    一.Java数组: 1.声明数组变量: 首先必须声明数组变量,才能在程序中使用数组.下面是声明数组变量的语法:注意: 建议使用 dataType[] arrayRefVar 的声明风格声明数组变量. ...

  5. 【基础恶补】JavaScript数组的一些方法,reduce,filter,reverse,map等

    reduce reduce方法会对数组中的每个元素按序执行由你提供的reducer函数,每一次运行reducer会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值. 用法,两个参数cal ...

  6. doctrine find的对象转换成数组_「ES6基础」Array数组的新方法(上)

    在日常工作中我们经常会与数组打交道,因此需要熟练掌握数组操作的相关方法,ES6中关于数组的操作,又给我们带来了哪些惊喜呢,Array数组操作又添加了哪些新方法? 本篇文章将从以下几个方面进行介绍: A ...

  7. 03JavaScript基础——数组、二维数组、数组方法

    数组: 可以理解为一个大容器,像变量一样可以存储值或其他变量的值,数组的数据类型是Object, 但是数组可以存储多个值或变量,并且他们在数组中是有顺序的. 数组所存储的值或变量称为数组的元素.元素与 ...

  8. 前端基础——数组的方法

    push() 在数组末尾添加元素,接收一个或多个参数 unshift() 在数组首位添加元素,接收一个或多个参数 pop() 删除数组末尾元素 shift() 删除数组第一个元素 splice() 在 ...

  9. java scanner输入数组_java基础- scanner/方法/数组

    1.用户交互scanner Next() public class demo1 { public static void main(String[] args) { //创建一个scanner对象 S ...

  10. 【php基础入门】PHP中常用的数组操作使用方法笔记整理(推荐)

    PHP数组 数组是对大量数据进行有效组织和管理的手段之一,通过数组的强大功能,可以对大量性质相同的数据进行存储.排序.插入及删除等操作,从而可以有效地提高程序开发效率及改善程序的编写方式. 数组:是一 ...

最新文章

  1. 【OpenCV】透视变换 Perspective Transformation(续)
  2. 【大数据技术】操作系统和Hadoop版本选择
  3. 基于VUE的前端crypto-js aes加密与解密
  4. python中的常量_Python中的变量和常量
  5. (计算机组成原理)第三章存储系统-第六节2:Cache和主存的映射方式(全相联映射、直接映射和组相连映射)
  6. JavaScript 获取 当前日期和三十天以前日期
  7. 微软通信winusb —— 不再为你的usb设备编写驱动
  8. C/C++程序设计注意事项 (二)
  9. 欧氏空间内积定义_泛函分析笔记3:内积空间
  10. 毛笔日常保养注意事项
  11. 致敬那些用键盘改变世界的劳动者
  12. java 小数 乘法_javascript(js)的小数点乘法除法-Java架构师必看
  13. java ajax框架_ajax框架之 zk -demo1
  14. HTC vive 虚实融合
  15. Android时间与服务器同步方法
  16. Shiro总结和常见面试题
  17. 红外遥控的发射和接收原理
  18. 【渝粤题库】广东开放大学 商务网站建设与维护 形成性考核
  19. EXCEL的VLOOKUP与COLUMN函数结合完成工资条实例
  20. winsxs是什么文件夹 Winsxs文件夹可以删除吗

热门文章

  1. c语言单元测验,C语言程序设计单元测验一.PDF
  2. 计算机数媒专业优势,27所院校新开设数字媒体艺术专业,“数媒”专业为什么这么火?...
  3. tp3.2 不能提交到action方法_什么是死锁,如何避免死锁(4种方法)
  4. java getxxx_java的invoke与getMethod方法用法
  5. Android顶部粘至视图具体解释
  6. 设计模式之UML类图
  7. php代码规范说明文档
  8. OFBiz的探索进阶
  9. 电话骗术升级了,提高警惕! (转自公司内部新闻组,真人真事)
  10. Visual Studio Team System 2008 Team Suite (90-day Trial)(转)