JS中数组Array方法

原创 2016年08月31日 16:25:48

概述

map()方法返回一个由原数组中的每个元素调用一个指定的方法后的返回值组成的新数组。

语法

array.map(callback[, thisArg])

参数

callback
原数组中的元素经过该方法后返回一个新的元素。

currentValue
callback的第一个参数,数组中当前被传递的元素。

index
callback的第二个参数,数组中当前被传递的元素的索引。

array
callback的第三个参数,调用map方法的数组。

thisArg
执行callback函数时this指向的对象。

描述

map 方法会给原数组中的每个元素都按顺序调用一次 callback 函数。callback 每次执行后的返回值组合起来形成一个新数组。callback 函数只会在有值的索引上被调用;那些从来没被赋过值或者使用 delete 删除的索引则不会被调用。

callback 函数会被自动传入三个参数:数组元素,元素索引,原数组本身。

如果 thisArg 参数有值,则每次 callback 函数被调用的时候,this 都会指向 thisArg 参数上的这个对象。如果省略了 thisArg 参数,或者赋值为 null 或 undefined,则 this 指向全局对象 。

map 不修改调用它的原数组本身(当然可以在 callback 执行时改变原数组)。

用法

用法一:

["1", "2", "3"].map(parseInt); 
/**
* 你可能觉的会是[1, 2, 3]
* 但实际的结果是 [1, NaN, NaN]
* 使用parseInt时,只需要传递一个参数.而parseInt可以有两个参数.第二个参数是进制数.
* map方法在调用callback函数时,会给它传递三个参数:当前正在遍历的元素, 元素索引, 原数组本身.
* 第三个参数parseInt会忽视, 但第二个参数不会.
* 也就是说,parseInt把传过来的索引值当成进制数来使用.从而返回了NaN.
* 即:第一个参数正常使用,第二个当做进制数,第三个以及之后的会被忽视
*/

//应该使用如下的用户函数returnInt

function returnInt(element){
  return parseInt(element,10);
}

["1", "2", "3"].map(returnInt);
// 返回[1,2,3]

用法二:

/**
* 将data,data2两个数组组合成json的格式
*/

var data = ["a","b","c","d","e","f","g","h","i","j"];
var data2 =  [1,2,3,4,5,6,7,8,9,10];


//方法一:(一般项目中不会这么拼接)

var array1 = data.map(function(item){
    var name  = "'name'";
    return name+":'"+item+"',";
});
var array2 = data2.map(function(item){
    var value = "'value'";
    return value+":'"+item+"'";
});

var arr = new Array();

for(var i = 0;i<data.length;i++){
    arr[i] = "{"+array1[i]+array2[i]+"}";   
}
var a = '['+arr+']';
document.write(a);



//方法二:(建议使用这种)

var aaa = data.map(function(item,index){
    return {
        name : item,
        value : data2[index]
    }
});
document.write(JSON.stringify(aaa));
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

JS 操作Array数组的属性和方法

最近用到了Array就对其进行一个整理,文中内容阅读他人文章摘录加自己实验操作所的,并非完全原创。 数组对象的3个属性 1、length 属性 length 属性     Length属性表...

js之Array数组对象属性及方法

数组属性: length 用法:.length;返回:数组的长度,即数组里有多少个元素。它等于数组里最后一个元素的下标加一。 数组方法: 常用方法详细说明: 数组连...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

js中Array数组中的常用方法汇总

Array的push与unshift方法性能比较分析 从原理就可以知道,unshift的效率是较低的。原因是,它每添加一个元素,都要把现有元素往下移一个位置。unshift比push要慢差不多100...

js Array 数组相关的方法

1.contact()用于连接2个或者多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。 var arr1 = [1,2,3], arr2 = [4,5,6], ...

js数组Array对象常用方法总结

本文对js的Array对象中的常用方法进行总结知识点一:Array对象中的方法添加: push() 向数组的末尾添加一个或更多元素,并返回新的长度。 unshift() 向数组的开头...

js循环数组各种方法array 汇总-基础

js循环数组各种方法array 汇总-基础  这几天做系统, 又用到多维数组 循环 交叉。所以总结一套 以供参考记录Js代码  var myStringArray = ["Hello","World"...

JS数组方法汇总 array数组元素的添加和删除

js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[1] = "b...

JS数组方法汇总 array数组元素的添加和删除

js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[1] = "b...

JS数组方法汇总 array数组元素的添加和删除

JS数组方法汇总 array数组元素的添加和删除 转载自 http://www.cnblogs.com/yuzhongwusan/archive/2008/12/15/1355378.ht...

JS数组方法汇总 array数组元素的添加和删除

js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个他测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[1] = "b...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)