jQuery $ .each - перебирать массив объектов и выбирать поле для каждого объекта - PullRequest
1 голос
/ 17 марта 2020

У меня есть массив объектов, как показано ниже, скажем, 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

Как это сделать?

Ответы [ 2 ]

5 голосов
/ 17 марта 2020

Вам не нужно 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);
0 голосов
/ 17 марта 2020

Рассмотрим следующий код.

$(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 всегда будет переносить это значение как объект, даже если это простая строка или числовое значение.) Метод возвращает свой первый аргумент - объект, который был повторен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...