首页 > js 中的Array.map(function(){})是什么意思呢?

js 中的Array.map(function(){})是什么意思呢?

var words=Array(10).join("1").split("");
    var drow=function(){
        words.map(function(){
            text=String.fromCharCode(65+Math.ceil(Math.random()*57));
            console.log(text)
        })
    }
    setInterval(drow,500)

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

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

引用自:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/map


实例:

var numbers = [1,2,3,4,5,6,7,8,9,10];
var newNumbersArray = numbers.map(function(currentValue,index,array){
    console.log("current:",index,",value:",currentValue); //输出:current: 0 ,value: 1
    return currentValue * 2;
});

console.log(newNumbersArray); //输出:[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

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

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

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

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

使用 map 方法处理数组时,数组元素的范围是在 callback 方法第一次调用之前就已经确定了。在 map 方法执行的过程中:原数组中新增加的元素将不会被 callback 访问到;若已经存在的元素被改变或删除了,则它们的传递到 callback 的值是 map 方法遍历到它们的那一时刻的值;而被删除的元素将不会被访问到。

例如:

var words=Array(10).join("1").split("");
console.log(words) ;//["1", "1", "1", "1", "1", "1", "1", "1", "1"]
var addOne=function(){

return words.map(function(val){
 var result = parseInt(val)+1;
 return result; 
})

}

var newwords=addOne();
console.log(newwords) //[2, 2, 2, 2, 2, 2, 2, 2, 2]


map 方法 (Array) (JavaScript)

对数组的每个元素调用定义的回调函数并返回包含结果的数组。
array1.map(callbackfn[, thisArg])

返回值

一个新数组,其中的每个元素均为关联的原始数组元素的回调函数返回值。

对于数组中的每个元素,map 方法都会调用 callbackfn 函数一次(采用升序索引顺序)。 将不会为数组中缺少的元素调用回调函数。

除了数组对象之外,map 方法可由具有 length 属性且具有已按数字编制索引的属性名的任何对象使用。

【热门文章】
【热门文章】