js入门之内置数组对象 Array
一、 数组
1. 创建数组的两种方式
1. 数组字面量
var array = [] 2. 数组的构造函数创建数组
var array = new Array();
2. 如何判断一个变量是否是数组
instanceof
方式1:
var array = new Array();
function fn(arr) {
if (!(arr instanceof Array)) {
console.error('参数不是数组对象')
return;
}
}
var d = [];
fn(d); 方式2:
Array.isArray(arr)
二、数组中提供的常用方法
toString() 把数组转换成字符串 用逗号分隔每一项
valueOf() 返回数组对象本身 常用方法:
1. 栈操作 (先进后出) 比喻成一个盒子 只开一个口 push() 返回值是改变后的数组的长度
pop() 取出数组中的最后一项, 并且会修改length属性 2. 队列 (先进先出) 比喻成两个盒子 两头都开口
push() 往最后添加元素
shift() 取出数组中最前面插入项, 返回数组的长度
unshift() 在数组中最前面插入项, 返回数组的长度 3. 排序
reverse() 反转
sort() 直接在原宿主上进行排序
默认情况下是对字符编码从小到大排序
4. 操作方法
concat() 把两个数组拼接起来
slice() 从当前的数组中截取一个新的数组, 不影响原来的数组
splice() 删除或替换当前数组的某些元素,
5. 位置方法
indexOf() 从数组中从前往后找元素
console.log(arr.indexOf('a', 2)); 第二个参数指定索引位置
lastIndexOf() 从后往前找 如果没找到返回-1
6. 迭代方法 不会修改原数组(可选) html5中提供的
every()
filter()
forEach()
map()
some()
7. 方法将数组的所有元素连接到一个字符中
join()
学习一个方法的步骤
1. 了解方法的作用
2. 方法的参数
3. 方法的返回值
4. 测试 写demo
三、 常见案例
1. 对数值类型的数组进行排序
var array = [ 25, 10, 108, 18];
array.sort(function (a,b) {
return a - b;
});
console.log(array); 字符个数从小到大排序
var arr = ['abc', 'ab', 'a', 'abcdef', 'xy'];
arr.sort(function (a,b) {
return a.length - b.length;
});
console.log(arr);
2. sort 内部实现原理
function sort(array, fnCompare) {
for (var i = 0; i < array.length - 1; i++) {
var isSort = true;
for (var j = 0; j < array.length -1 -i; j++) {
if (fnCompare(array[j], array[j + 1]) < 0) {
isSort = false;
var tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
}
}
if (isSort) {
break;
}
}
}
var arr = [58, 10, 15, 32];
sort(arr, function(a, b) {
return a - b;
});
console.log(arr);
3. 查找数组中所有的a
var index = -1;
var arr = ['c', 'a', 'z', 'a', 'x', 'a'];
do {
index = arr.indexOf('a', index + 1);
if (index !== -1) {
console.log(index);
}
} while(index !== -1);
4. filter过滤
var arr = [1500,1200,2000,2100,1800];
var newArray = arr.filter(function (item) {
return item < 2000;
});
console.log(newArray);
5. 清空数组
方法1
arr = [];
方法2
arr.length = 0;
方式3
arr.splice(0, arr.length); var arr = [1, 2, 3];
// 第一个参数是从什么位置开始删除 索引
// 第二个参数是删除多少个元素
arr.splice(0,arr.length)
console.log('array: ' + arr);
js入门之内置数组对象 Array的更多相关文章
- c++入门之内置数组和array比较
array是C++11中新提出来的容器类型,与内置数组相比,array是一种更容易使用,更加安全的数组类型,可以用来替代内置数组.作为数组的升级版,继承了数组最基本的特性,也融入了很多容器操作,下面介 ...
- js入门之内置对象Math
一. 复习数据类型 简单数据类型, 基本数据类型/值类型 Number String Boolean Null Undefined 复杂数据类型 引用类型 Object 数组 数据在内存中是如何存储的 ...
- js入门之内置对象Date
一. Date对象 Math和Date对象的区别 Math对象和Date对象的区别 Math不是一个构造函数,里面提供的是静态成员 Date是一个构造函数 首先要通过new Date() 来创建日期实 ...
- js中内置有对象
statpot:使用mongo+bootstrap+highcharts做统计报表 最近做了一个统计项目,这个统计项目大致的需求是统计接口的访问速度.客户端会调用一个接口来记录接口的访问情况,我的需求 ...
- js 根据条件删除数组中某个对象&js filter (find)过滤数组对象的使用
删除 ---- item不设置 arr.splice(1,1) //['a','c','d'] 删除起始下标为1,长度为1的一个值,len设置的1,如果为0,则数组不变 arr. ...
- 将类数组对象(array-like object)转化为数组对象(Array object)
用法:Array.prototype.slice.call(array-like object) // 创建一个类数组对象 var alo = {0:"a", 1:"b& ...
- python基础之内置异常对象
前言 什么叫异常?简单来说就是程序运行发生了预计结果之外的情况从而导致程序无法正常运行.而python解释器将一些常见的异常情况在它发生时打包成一个异常对象,我们可以通过捕捉这些异常对象从而进行处理, ...
- js入门篇之Math对象
Math对象用于执行数学任务 Math对象的属性: Math对象的方法: 常用属性和方法: Math.PI ----------------返回圆周率3.14 ... Math.ceil(x) --- ...
- js中的类数组对象---NodeList
动态 NodeList 这是文档对象模型(DOM,Document Object Model)中的一个大坑. NodeList 对象(以及 HTML DOM 中的 HTMLCollection对象)是 ...
随机推荐
- 教你玩转Linux—用户账号的管理
用户账号的管理工作主要涉及到用户账号的添加.修改和删除.添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号.用户组.主目录和登录Shell等资源.刚添加的账号是被锁定的,无法使用. 1.添 ...
- 报错:(未解决)Opening socket connection to server master/192.168.52.26:2181. Will not attempt to authenticate using SASL (unknown error)
报错背景: CDH集群中,将kafka和Flume整合,将kafka的数据发送给Flume消费. 启动kafka的时候正常,但是启动Flume的时候出现了报错现象. 报错现象: DH--.cdh5./ ...
- 安装kubernet(k8s)
简介: 需要学习的都明白,这里就不赘述了. 本文采用CentOS-7-x86_64-DVD-1810.iso 一:安装操作系统 本来是喜欢用fedora的,但是fedora貌似包维护的不好,就又开始用 ...
- yaml文件实例:nginx+ingress
[root@lab3 nginx]# cat nginx-test.yaml apiVersion: extensions/v1beta1 kind: Deployment metadata: nam ...
- 【Leetcode_easy】989. Add to Array-Form of Integer
problem 989. Add to Array-Form of Integer 参考 1. Leetcode_easy_989. Add to Array-Form of Integer; 完
- Js把对象数组列表转换成数组
今天写组件的时候遇到一个问题,就是当我需要对获取到的对象列表进行删减的时候,发现没有合适的方法,比如: //获取图片列表 var imgs = document.getElementsByTagNam ...
- jcmd的简单实用
命令jcmd 显示所有java进程id及相关信息 命令 jcmd java_pid help 显示某个java进程的所有可用命令 ➜ jobs jcmd 61185 help 61185: The f ...
- vue-cli3.0和element-ui及axios的安装使用
一.利用vue-cli3快速搭建vue项目 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统.有三个组件: CLI:@vue/cli 全局安装的 npm 包,提供了终端里的vue命令( ...
- Flutter 一些常用第三方库、插件
网络请求 http ^0.12.0+2 https://pub.dev/packages/http https://github.com/dart-lang/http 该软件包包含一组高级函数和类,可 ...
- 【GStreamer开发】GStreamer播放教程05——色彩平衡
目标 亮度,对比度,色度和饱和度都是常见的视频调节参数,也是GStreamer里面设置色彩平衡的参数.本教程将展示: 如何发现可用的色彩平衡通道 如何改变它们 介绍 <GStreamer基础教程 ...