Как склеить значение из массивов в javascript / jquery?

Я объявил массив как var user_profile = [];, и у меня уже есть некоторые отправленные данные в arrayList, которые содержат:

[  
   {  
      "assessmentType":"PRE",
      "assessCatId":0,
      "assessReason":"appeal",
      "assessAmount":"445",
      "assessPenalty":"",
      "assessTotal":445
   },
   {  
      "assessmentType":"PRE",
      "assessCatId":0,
      "assessReason":"appeal",
      "assessTotal":null
   },
   {  
      "assessmentType":"PRE",
      "assessCatId":0,
      "assessReason":"445",
      "assessTotal":null
   },
   {  
      "assessmentType":"PRE",
      "assessCatId":0,
      "assessReason":"",
      "assessTotal":null
   },
   {  
      "assessmentType":"PRE",
      "assessCatId":0,
      "assessReason":"2075-09-13",
      "assessAmount":"2075-09-03",
      "assessTotal":null
   },
   {  
      "assessmentType":"PRE",
      "assessCatId":0,
      "assessReason":"2075-09-13",
      "assessTotal":null
   },
   {  
      "assessmentType":"PRE",
      "assessCatId":0,
      "assessReason":"2075-09-03",
      "assessTotal":null
   },
   {  
      "assessmentType":"PRE",
      "assessCatId":1,
      "assessReason":"A",
      "assessAmount":"1",
      "assessPenalty":"2",
      "assessTotal":3
   },
   {  
      "assessmentType":"PRE",
      "assessCatId":2,
      "assessReason":"B",
      "assessAmount":"3",
      "assessPenalty":"40",
      "assessTotal":43
   },
   {  
      "assessmentType":"PRE",
      "assessCatId":3,
      "assessReason":"C",
      "assessAmount":"5",
      "assessPenalty":"6",
      "assessTotal":11
   }
]

В этом списке массивов мне нужно удалить данные, у которых AssessmentCatId == 0. Итак, я попытался сращивать, используя

$.each(user_profile, function(i) {
  if (user_profile[i].assessCatId == 0) {
    user_profile.splice(i, 1);
  }
});

Но это не работает. Он показывает мне ошибку как:

Как склеить значение из массивов в javascript / jquery?

Или я хочу сказать, что мне просто нужны данные в arrayList, чей assessCatId==1 or 2 or 3. Как отфильтровать этот arrayList и удалить эти данные из arrayList?

эй, ты должен взять индекс и склеить его

Akhil Aravind 27.12.2018 06:12
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
41
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не пытайтесь изменить (например, splice) массив пока, который вы повторяете по нему - это приведет к очень неинтуитивному поведению. Например, после того, как первый элемент будет удален, i дальнейших итераций будет ссылаться на индекс, по которому должен находиться элемент, проходящий по использовал, а не на индекс, по которому этот элемент находится в новом мутированном массиве, что приводит к проблемам undefined ближе к концу. , а в неверных указателях удаляются.

Здесь лучше подойдет простой .filter, без jQuery:

const input=[{"assessmentType":"PRE","assessCatId":0,"assessReason":"appeal","assessAmount":"445","assessPenalty":"","assessTotal":445},{"assessmentType":"PRE","assessCatId":0,"assessReason":"appeal","assessTotal":null},{"assessmentType":"PRE","assessCatId":0,"assessReason":"445","assessTotal":null},{"assessmentType":"PRE","assessCatId":0,"assessReason":"","assessTotal":null},{"assessmentType":"PRE","assessCatId":0,"assessReason":"2075-09-13","assessAmount":"2075-09-03","assessTotal":null},{"assessmentType":"PRE","assessCatId":0,"assessReason":"2075-09-13","assessTotal":null},{"assessmentType":"PRE","assessCatId":0,"assessReason":"2075-09-03","assessTotal":null},{"assessmentType":"PRE","assessCatId":1,"assessReason":"A","assessAmount":"1","assessPenalty":"2","assessTotal":3},{"assessmentType":"PRE","assessCatId":2,"assessReason":"B","assessAmount":"3","assessPenalty":"40","assessTotal":43},{"assessmentType":"PRE","assessCatId":3,"assessReason":"C","assessAmount":"5","assessPenalty":"6","assessTotal":11}]

const output = input.filter(({ assessCatId }) => assessCatId != 0);
console.info(output);
filter требует значительно меньше кода (меньше площади для ошибок) и гораздо более интуитивно понятен, чем splice в этой ситуации - это определенно предпочтительнее альтернативы.
CertainPerformance 27.12.2018 06:21

@CertainPerformance, что, если мне нужно добавить условие, чтобы проверить как условие AssessmentcatId = 0, так и AssessmentReason == empty.

ashwin karki 27.12.2018 07:15

@ashwin Затем извлеките оба свойства: ({ assessCatId, assessReason }) => assessCatId != 0 || assessReason != 'empty') или что-то в этом роде

CertainPerformance 27.12.2018 07:19

@CertainPerformance, как ты сказал мне, чтобы фильтровать AssessReason, не работает. Пожалуйста, помогите мне

ashwin karki 28.12.2018 06:10

Не на 100% понятно, что вы ищете, какой результат вы ожидаете? Обратите внимание, что в настоящее время у вас нет никаких свойств assessReason, которые являются 'empty' во входном массиве.

CertainPerformance 28.12.2018 06:33

Другие вопросы по теме