簡體   English   中英

jQuery $.each - 遍歷對象數組並為每個對象選擇一個字段

[英]jQuery $.each - Iterate over an array of objects and select a field for each object

我有一個像下面這樣的對象數組,讓我們說arrayValues

{ field1 : "933", field2 : "something", fieldN: "344" }
{ field1 : "21", field2 : "something", fieldN: "344" }
{ field1 : "34", field2 : "something", fieldN: "344" }

使用jQuery foreach我試圖為數組中的每個對象獲取field1值,然后將它們添加到另一個數組,讓我們說newArray

var newArray = [];
$.each(arrayValues, function () {   
   newArray.push('what to put here?');
});

最后, newArray應該包含: 933, 21, 34

這該怎么做?

為此,您不需要 jQuery。 jQuery 是一個主要用於修改 DOM 的框架。 要使用數組,您只需要簡單的舊 Javascript。 因此,只需使用map()構建您需要的數組:

 let arrayValues = [ { field1 : "933", field2 : "something", fieldN: "344" }, { field1 : "21", field2 : "something", fieldN: "344" }, { field1 : "34", field2 : "something", fieldN: "344" } ] let newArray = arrayValues.map(o => o.field1); console.log(newArray);

請注意,如果您希望將值作為整數使用o => parseInt(o.field1, 10)

如果出於某種原因,您確實想在 jQuery 中執行此操作,那么您將使用$.map()

let newArray = $.map(arrayValues, o => o.field1);

考慮以下代碼。

 $(function() { var arr = [{ field1: "933", field2: "something", fieldN: "344" }, { field1: "21", field2: "something", fieldN: "344" }, { field1: "34", field2: "something", fieldN: "344" } ] var newArr = []; $.each(arr, function(k, v) { newArr.push(parseInt(v.field1, 10)); }); console.log(newArr); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

請查看: https : //api.jquery.com/jquery.each/

$.each()函數與$(selector).each() ,后者用於專門遍歷 jQuery 對象。 $.each()函數可用於迭代任何集合,無論是對象還是數組。 在數組的情況下,回調每次都會傳遞一個數組index和相應的數組value (該值也可以通過 this 關鍵字訪問,但 Javascript 將始終將 this 值包裝為一個對象,即使它是一個簡單的字符串或數字值。)該方法返回它的第一個參數,即被迭代的對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM