jQuery.map()

admin發表於2018-02-02

此方法將一個陣列中的所有元素轉換到另一個陣列中。

語法結構一:

[JavaScript] 純文字檢視 複製程式碼
jQuery.map(array, callback(elementOfArray, indexInArray))

引數解析:

(1).array:待轉換陣列。

(2).callback(elementOfArray, indexInArray):處理每一個元素的函式,每次執行的返回值是另一個陣列的新元素。elementOfArray:可選,陣列元素,indexInArray:可選,當前陣列元素的索引。

jQuery1.0版本新增。

語法結構二:

[JavaScript] 純文字檢視 複製程式碼
jQuery.map(arrayOrObject, callback(value, indexOrKey))

引數解析:

(1).arrayOrObject:陣列或者物件,在jQuery1.6之前,jQuery.map()只支援遍歷陣列和類陣列物件,之後也可以遍歷普通鍵值對物件。

(2).callback:處理每一個元素的函式,每次執行的返回值是另一個陣列的新元素。value:可選,陣列中元素或物件的值,indexOrKey:可選,該元素在陣列中的索引值或該物件的鍵。函式中的this指向window物件。

jQuery1.6版本新增。

callback返回值總結:

(1).轉換後的值,該值會被對映到最終的結果陣列中。

(2).null或者undefined, 用於移除該元素。

(3).陣列,會將該陣列中的元素新增到最終的結果陣列中。

程式碼例項:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script src="https://code.jquery.com/jquery-3.1.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("#bt").click(function () {
    var arr=$.map([0, 4, 8], function (ele, index) {
      return ele * index;
    })
    $("#result").text(arr);
  })
})
</script>
</head>
<body>
<input type="button" id="bt" value="檢視演示"/>
<div id="result"></div>
</body>
</html>

通過此方法遍歷陣列中的每一個元素生成一個新的陣列,陣列的值是原陣列值乘以對應的索引值。

[HTML] 純文字檢視 複製程式碼執行程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script src="https://code.jquery.com/jquery-3.1.1.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("#bt").click(function () {
    var arr=$.map($("li"), function (ele, index) {
      return $(ele).text();
    })
    $("#result").text(arr);
  })
})
</script>
</head>
<body>
<ul>
  <li>螞蟻部落一</li>
  <li>螞蟻部落二</li>
  <li>螞蟻部落三</li>
  <li>螞蟻部落四</li>
</ul>
<input type="button" id="bt" value="檢視演示"/>
<div id="result"></div>
</body>
</html>

上面程式碼處理的是一個類陣列,獲取每一個li元素的文字然後存入陣列。

[HTML] 純文字檢視 複製程式碼執行程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script src="https://code.jquery.com/jquery-3.1.1.js"></script>
<script type="text/javascript">
$(document).ready(function () {
  var obj = {
    age: 4,
    address: "青島市南區",
    site:"www.softwhy.com"
  }
  $("#bt").click(function () {
    var arr = $.map(obj, function (ele) {
      return ele;
    })
    $("#result").text(arr);
  })
})
</script>
</head>
<body>
<ul>
  <li>螞蟻部落一</li>
  <li>螞蟻部落二</li>
  <li>螞蟻部落三</li>
  <li>螞蟻部落四</li>
</ul>
<input type="button" id="bt" value="檢視演示"/>
<div id="result"></div>
</body>
</html>

上面程式碼處理的是一個物件,然後將物件的屬性值存入陣列。