Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите с массивом объектов, нужно из двух создать 1 (https://javascript.ru/forum/misc/85167-pomogite-s-massivom-obektov-nuzhno-iz-dvukh-sozdat-1-a.html)

Aidec 03.05.2023 00:16

Цитата:

Сообщение от рони (Сообщение 551722)
Aidec,
arr.forEach(function(element) {
            if (element.hasOwnProperty("status")) {
                element.status = (element.status).split('#')[1] || element.status;
            };
          ...........

Скажи пожалуйста, а как быть если пишет ошибку такую Cannot read properties of null (reading 'split')
Если я правильно понял то сплит не может примениться так как не к чему его применить.
Я бы хотел узнать, можно ли сделать так что бы в таком случаем где выводит null у меня выводил место этого "Отсутствует" ?

Aidec 03.05.2023 00:23

вот например так
(4) [{…}, {…}, {…}, {…}
0: {name: 'Anton', age: '20', status: 'Yes'}
1: {name: 'Artem', age: '23', status: 'Отсутствует'}
2: {name: 'Rafik', age: '32', status: 'No'}
3: {name: 'Andrey', age: '30'}
length: 4


а на данный момент вот так все выглядит

(4) [{…}, {…}, {…}, {…}
0: {name: 'Anton', age: '20', status: 'Yes'}
1: {name: 'Artem', age: '23', status: 'null'}
2: {name: 'Rafik', age: '32', status: 'No'}
3: {name: 'Andrey', age: '30'}
length: 4

и висит эта ошибка

рони 03.05.2023 00:26

Aidec,
скорее всего split применяется к числу -- не знаю ваших реальных данных.

но можно так попробовать
element.age = +(''+element.age).split('#')[1] || +element.age;

иначе пишите данные что есть на входе и что хотите на выходе.

рони 03.05.2023 00:35

Aidec,
const ar = [    {name: 'Anton', age: '20', status: '123#Yes'}
, {name: 'Artem', age: '23', status: null}
, {name: 'Rafik', age: '32', status: 'No'}
, {name: 'Andrey', age: '30'}]
ar.forEach( ob => {
ob.status = ob.status ? ((ob.status).split('#')[1] || ob.status) : 'Отсутствует'
})
console.log(ar)

Aidec 03.05.2023 14:30

Благодарю, все четко заработало :thanks:


Часовой пояс GMT +3, время: 02:38.