数组操作全解

js变量类型

var string;

var name = "student",age=12; //underfined、null、boolean、string、number为基本数值类型。逗号一并定义初始化多个变量。基本包装类型String、Boolean、Number通过valueOf()可以获取基本数值类型,可以实现自动装箱和拆箱操作。

数组的定义

var names=[];                           //定义数组并初始化为空
names = ["小明","小红","小刚"]; //赋值,可以在定义时赋值
names = new Array(); //定义数组并初始化为空
names=new Array(names.length); //数组基类为Array,属性length为数组长度
names = new Array('小明','小红','小刚'); //字符串不区分单双引号,只要配对使用就行

增删查改

//元素增加
names[4]="小胡"; //通过赋值,直接添加了两项,null和“小胡”
names.unshift("小李","小兰"); //首部添加
names.push("小李","小兰"); //末尾添加 //元素删除
var item = names.pop(); //删除获取最后一项
item=names.shift(); //删除获取第一项
names.splice(2,1,"小季","小明"); //删除添加数据,修改源数组,第一个参数表示开始删除的位(包含),第二个参数表示要删除的数目,后面参数表示在删除位置处添加的元素 //元素读取查找
var nameitem=names[2]; //使用[]读取数组,这是最简单的读取方式
names = names.slice(-4,6); //读取数组段,不修改源数组,负数表示从右向左数,-1表示末尾第一个元素,0表示首部第一个元素。只有一个参数时表示直到末尾。读取索引包含第一个参数不包含第二个参数
names.indexOf("小明"); //查找匹配元素的位置,没有找到返回-1,lastindexof表示最后匹配的位置。 //数组的拼接和字符串表示
names=names.concat("小王",["小明","小黑"]); //拼接数组,不修改源数组,所以要赋值
var str=stringnames.join(","); //使用间隔字符串连接数组

遍历

var boolresult = names.every(function(item,index,array){   //对数组中元素每一项进行布尔运算,返回false和true。every函数,全部元素返回true时返回true。some函数某一元素返回true时返回true
return (index>2);
});
var nameresult = names.filter(function(item,index,array){ //返回数组,filter函数获取满足条件的项,map函数获取每一项计算值的集合,不改变原数组,forEach函数等价于for语句,对每项处理
return (index>2);
});
nameresult = names.reduce(function(prev,cur,index,array){ //reduce从前向后迭代,reduceRight从后向前迭代。
return prev+"+"+cur; //迭代从第二项开始,prev初始值为第一项,cur初始值为第二项。计算值自动传给下一函数的prev,返回最后一次迭代产生的值
});

排序

names.reverse();                        //数组取反
names.sort(); //数组排序sort(compare),参数可为排序函数,空元素将排到最后
function compare(student1,student2){ //比较函数,返回-1,0,1
//return student1.age<student2.age?-1:(student1.age==student2.age?0:1); //-1表示前对象小,1表示后对象小,0表示相等
return student2.age-student1.age; //正数自动转化为1,负数转化为-1
}

数组原型 
自定义数组原型函数,实现为所有数组添加功能

function array_max( )
{
return Math.max.apply(Math,this); //max取最大值,min取最小值。还有很多数学运算
}
Array.prototype.max = array_max; //重写数组原型链
var x = new Array(1, 2, 3, 4, 5, 6); //应用自定义原型函数
var y = x.max( );

Js基础知识1-数组操作全解的更多相关文章

  1. js系列教程1-数组操作全解

    全栈工程师开发手册 (作者:栾鹏) 快捷链接: js系列教程1-数组操作全解 js系列教程2-对象和属性全解 js系列教程3-字符串和正则全解 js系列教程4-函数与参数全解 js系列教程5-容器和算 ...

  2. vue.js基础知识篇(6):组件详解

    第11章:组件详解 组件是Vue.js最推崇也最强大的功能之一,核心目标是可重用性. 我们把组件代码按照template.style.script的拆分方式,放置到对应的.vue文件中. 1.注册 V ...

  3. vue.js基础知识篇(2):指令详解

    第三章:指令 1.语法 指令以v-打头,它的值限定为绑定表达式,它负责的是按照表达式的值应用某些行为到DOM上. 内部指令有v-show,v-else,v-model,v-repeat,v-for,v ...

  4. JS基础知识(数组)

    1,数组 var colors = new Array(); var colors = new Array(20); var colors = new Array(“red”, “blue”, “gr ...

  5. jquery系列教程4-事件操作全解

    点击打开: jquery系列教程1-选择器全解 jquery系列教程2-style样式操作全解 jquery系列教程3-DOM操作全解 jquery系列教程4-事件操作全解 jquery系列教程5-动 ...

  6. [JS复习] JS 基础知识

    项目结尾,空闲时间,又把<JS 基础知识> 这本书过了一遍,温故知新后,很多知其然不知其所以然的内容 豁然开朗. [1. 用于范围的标签] display  :inline or bloc ...

  7. Node.js基础知识

    Node.js入门   Node.js     Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设在POSIX环境下运行 ...

  8. jquery系列教程3-DOM操作全解

    全栈工程师开发手册 (作者:栾鹏) 快捷链接: jquery系列教程1-选择器全解 jquery系列教程2-style样式操作全解 jquery系列教程3-DOM操作全解 jquery系列教程4-事件 ...

  9. JS基础知识笔记

    2020-04-15 JS基础知识笔记 // new Boolean()传入的值与if判断一样 var test=new Boolean(); console.log(test); // false ...

随机推荐

  1. gnuplot生成gif动画

    最近有个任务需要生成一个动态变化的图,然后突然发现gnuplot竟然可以生成gif动画,当真是应正了博客Gnuplot surprising的子标题: I always tell myself: &q ...

  2. Maven使用tomcat8-maven-plugin插件

    在网上搜索一堆文章没找到解决方法,只找到了tomcat7-maven-plugin的plugin,如下: <plugin> <groupId>org.apache.tomcat ...

  3. Python 基础知识(二)

    一.基础数据类型 1.数字int 数字主要是用于计算用的,使用方法并不是很多,就记住一种就可以: #bit_length() 当十进制用二进制表示时,最少使用的位数 # -*- coding:UTF- ...

  4. 求全排列Permutation

    是在教材(<计算机算法设计与分析(第4版)>王晓东 编著)上看见的关于求全排列的算法: 我们可以看一下书上怎么写的: #include<bits/stdc++.h> using ...

  5. bzip2 zip 压缩后体积比 0.8:1

    1. 对.bz2 后缀文件 跳过不处理 2.逐行同字段的json文件,压缩后大小为原文件的12.81% 测试文件近似认为为逐行json文本数据,没有进行多文件重复测试,没有统计时间: {"u ...

  6. redux+react-redux+示例的快速上手体验

    刚学习redux的同学提供一些可供参考的例子. 之前用vue用了很久 vue的语法糖用起来是真的舒服  react 其实毕竟他们都是类似的框架, 虽然语法大不同, 但是有些地方的思想还是很像的, 废话 ...

  7. Dungeon Master---2251(bfs)

    http://poj.org/problem?id=2251 有一个三维的牢房地图 求从S点走E点的最小时间: #include<stdio.h> #include<string.h ...

  8. C++三大特性之封装

    原文地址:https://qunxinghu.github.io/2016/09/12/C++%20%E4%B8%89%E5%A4%A7%E7%89%B9%E6%80%A7%E4%B9%8B%E5%B ...

  9. linux平台mysql密码设置

    登录mysql默认没有指定账号 查看默认账号是谁 select user(); mysql> select user();+----------------+| user() |+------- ...

  10. MutationObserver 监听DOM树变化

    1 概述 Mutation observer 是用于代替 Mutation events 作为观察DOM树结构发生变化时,做出相应处理的API.为什么要使用mutation observer 去代替 ...