$.map(arr|obj,callback)

返回值

Array

概述

将一个数组中的元素转换到另一个数组中。

作为参数的转换函数会为每个数组元素调用,而且会给这个转换函数传递一个表示被转换的元素作为参数。转换函数可以返回转换后的值、null(删除数组中的项目)或一个包含值的数组,并扩展至原始数组中。

参数

参数 类型 说明 示例值
array,callback Array,Function

v1.2
array:待转换数组。
callbackArray:为每个数组元素调用,而且会给这个转换函数传递一个表示被转换的元素作为参数。函数可返回任何值。另外,此函数可设置为一个字符串,当设置为字符串时,将视为“lambda-form”(缩写形式?),其中 a 代表数组元素。如“a * a”代表“function(a){ return a * a; }”。

arrayOrObject,callback Array/Object,Function

v1.6
arrayOrObject:数组或者对象。
为每个数组元素调用,而且会给这个转换函数传递一个表示被转换的元素作为参数。函数可返回任何值。另外,此函数可设置为一个字符串,当设置为字符串时,将视为“lambda-form”(缩写形式?),其中 a 代表数组元素。如“a * a”代表“function(a){ return a * a; }”。

示例

示例一

描述: 将原数组中每个元素加 4 转换为一个新数组。

jQuery 代码

$.map( [0,1,2], function(n){
  return n + 4;
});

结果

[4, 5, 6]
示例二

描述: 原数组中大于 0 的元素加 1 ,否则删除

jQuery 代码

$.map( [0,1,2], function(n){
  return n > 0 ? n + 1 : null;
});

结果

[2, 3]
示例三

描述: 原数组中每个元素扩展为一个包含其本身和其值加 1 的数组,并转换为一个新数组

jQuery 代码

$.map( [0,1,2], function(n){
  return [ n, n + 1 ];
});

结果

[0, 1, 1, 2, 2, 3]