数组的增删

数组的尾部插入一个元素

var nums = [0,1,2,3,4];

nums.push(5,6,6);

//[0,1,2,3,4,5,6,6]

删除数组尾部的元素

var nums = [0,1,2,3,4,5];

nums.pop()

// [0, 1, 2, 3, 4]

数组的头部添加一个元素

var nums = [0,1,2,3,4,5];

nums.unshift(-1);

//[-1, 0, 1, 2, 3, 4, 5]

nums.unshift(-2,-3);

//[-2, -3, -1, 0, 1, 2, 3, 4, 5]

数组的首位删除元素

var nums = [0,1,2,3,4,5];

nums.shift();

// [1, 2, 3, 4, 5]

数组的任意位置添加和删除元素

var nums = [0,1,2,3,4,5,6,7];

nums.splice(2);

//[0, 1]

var nums = [0,1,2,3,4,5,6,7];

nums.splice(2,1);

//[0, 1, 3, 4, 5, 6, 7]

var nums = [0,1,2,3,4,5,6,7];

nums.splice(2,1,"a","b","c");

//[0, 1, "a", "b", "c", 3, 4, 5, 6, 7]

slice()返回参数选定的范围的数组

数组的中级

concat():合并数组,可以合并一个或多个数组。会按照参数顺序依次合并进想要合并的数组

join():把所有的数组元素依照分隔符(也就是参数)链接成一个字符串。如果不传入参数则以","逗号分隔。该方法同样会生成一个新的字符串结果。

some()和every():some()方法,会遍历数组中的每个元素,直到返回false结束!而every()呢,与some()相反,直到返回true结束!some用来判断本数组中是否存在(至少有一个)符合传入函数的条件的值,而every则判断是否本数组中每一个值都符合条件

forEach():该方法中可以有三个参数(item,index,arr)分别是调用forEach数组中的每一项元素,每一项元素的下标,调用forEach方法的数组。该方法会遍历数组中的每一项,为每一项执行你想做的事,不更改原数组并且没有返回值。但是我们可以自己通过数组的索引来修改原来的数组

var nums = [1,2,3,4,5,6,7,8,9,10];

var newNumsB = [];

var newNumsA = nums.forEach(function (item,index,arr){

          newNumsB.push(item + 100)

           arr[index] = item + 10;

})

console.log(nums)

//[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

console.log(newNumsB)

//[101, 102, 103, 104, 105, 106, 107, 108, 109, 110]

console.log(newNumsA)

//undefined

map():简单来说就是一个映射,但是map必须要有返回值,并且map会返回一个新数组

var nums = [1,2,3,4,5,6,7,8,9,10];

var newMapNums = nums.map(function (item,index,arr) {

          console.log(item,index,arr);

          return item * item;

})

console.log(newMapNums)

// [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

filter():过滤 你(调用filter方法的数组中每一个元素)是否能通过我(filter的function方法)的判定,如果可以就会成为我(返回的新数组)的一员

var nums = [1,2,3,4,5,6,7,8,9,10];

var newNums = nums.filter(function(item,index,arr){

          return item > 5

})

console.log(newNums)

//[6, 7, 8, 9, 10]

reduce():reduce(function(total,item,index,arr){},initalVal)  total其实就是指你之前所累加的值,而initalVal就是你最初的total是多少

var nums = [1,2,3,4,5,6,7,8,9,10];

var newNums = nums.reduce(function(total,item,index,arr){

        return total + item*100

},100)

console.log(newNums)

//5600

indexOf是返回与参数匹配的第一个元素的索引,lastIndexOf返回与参数匹配的最后一个元素的索引。

 

js 操作数组的更多相关文章

  1. JS操作数组的常用方式

    一.JS操作数组一:删除指定的元素 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. //查找指定元素下标 Array.prototype.indexOf = function ...

  2. JS操作数组常用的方法

    JS操作Array对象的方法 concat(arr1,arr2,...):连接数组indexOf(value):返回数组中value的第一个索引join(separator):将数组中所有的元素连接由 ...

  3. JS 操作数组对象

    我们在操作数组时,加入数组中是以对象的形式存在,例如: 那么我们会涉及到去重复,去掉为0的数组中的对象,js代码如下: function getItemList(gid, totalMoney, ad ...

  4. js操作数组元素

    一, 删除数组指定的某个元素 首先可以给JS的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: Array.prototype.indexOf = function(val) ...

  5. js操作数组

    一.数组的声明方式: var colors = new Array();//创建数组 var colors = new Array(20);//创建20个长度的数组 var colors = new ...

  6. js操作数组的一些小技巧

    1.从数组中随机获取成员 var items = [12, 548 , 'a' , 2 , 5478 , 'foo' , 8852, , 'Doe' , 2145 , 119]; var  rando ...

  7. js 操作数组封装

    function OperateArray(array) { this.array = array; } OperateArray.prototype.hasValue = function(val) ...

  8. js 操作数组(过滤对应数据)

    过滤掉相应数据 var fileList = { "85968439868a92": [{name: 'food.jpeg'}, {name: 'ood.jpeg'}], &quo ...

  9. JS操作数组-2

    1. 找出数组 arr 中重复出现过的元素 function duplicates(arr) { var result = []; var count = []; for (var i=0;i< ...

  10. 小tips:JS操作数组的slice()与splice()方法

    slice(start, end) slice()方法返回从参数指定位置开始到当前数组末尾的所有项.如果有两个参数,该方法返回起始和结束位置之间的项,但不包括结束位置的项. var colors = ...

随机推荐

  1. 547. Friend Circles

    There are N students in a class. Some of them are friends, while some are not. Their friendship is t ...

  2. Java枚举类使用和总结

    1.枚举类使用情况一: package com.bie.util; import java.util.HashMap; import java.util.Map; /** * * @author bi ...

  3. 旋转矩阵 The Rotation Matrix

    参考: http://www.scratchapixel.com/lessons/mathematics-physics-for-computer-graphics/geometry/how-does ...

  4. OpenJDK-study-002 从GitHub下载openjdk,以及Cygwin的安装

    承前启后 由于上一篇openjdk-study-001中,从Mercurial直接拉取openjdk森林失败,于是网上搜了一下,发现GitHub上有人分享openjdk的源码 https://gith ...

  5. C# 之 向服务器上传资源

    首先写客服端,winform 应用 或者 WPF 应用 模拟一个post提交: /// <summary> /// 将本地文件上传到指定的服务器(HttpWebRequest方法) /// ...

  6. gcc make 与cmake

    1. gcc (1)是什么? 它是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器.它可以编译很多种编程语言(括C.C++.Objective-C.For ...

  7. net core体系-API-1Ocelot-(2)继续深入

    简单的说Ocelot是一个用.NET Core实现并且开源的API网关技术.可能你又要问了,什么是API网关技术呢?Ocelot又有什么特别呢?我们又该如何集成到我们的asp.net core程序中呢 ...

  8. mysql基础理论

    第一节数据库管理系统概述 在www.db-engines.com/en/ 这个网站中可以看到对数据库的排名 数据库分为: 关系型数据库: mysql------mariaDB oracle 非关系型数 ...

  9. 不同路径II(一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。)

    示例 1: 输入: [   [0,0,0],   [0,1,0],   [0,0,0] ] 输出: 2 解释: 3x3 网格的正中间有一个障碍物. 从左上角到右下角一共有 2 条不同的路径: 1. 向 ...

  10. Machine Learning 算法可视化实现1 - 线性回归

    一.原理和概念 1.回归 回归最简单的定义是,给出一个点集D,用一个函数去拟合这个点集.而且使得点集与拟合函数间的误差最小,假设这个函数曲线是一条直线,那就被称为线性回归:假设曲线是一条二次曲线,就被 ...