Как убрать запятые при выводе массива js
Перейти к содержимому

Как убрать запятые при выводе массива js

  • автор:

Удалить запятые из массива JS

У меня есть массив. Он отображает название и цену товара и кнопку, а после кнопки запятая, как убрать запятую?

const products = [< id: 1, title: 'Notebook', price: 1000 >, < id: 2, title: 'Mouse', price: 100 >, < id: 3, title: 'Keyboard', price: 250 >, < id: 4, title: 'Gamepad', price: 150 >, ]; const renderProduct = (title, price) => < return `
$

$

`; >; const renderProducts = list => < const productList = list.map(item =>renderProduct(item.title, item.price)); document.querySelector('.products').innerHTML = productList; >; renderProducts(products);

Отслеживать
4,037 2 2 золотых знака 12 12 серебряных знаков 28 28 бронзовых знаков
задан 9 янв 2022 в 11:00
15 1 1 серебряный знак 5 5 бронзовых знаков
Не надо так данные в разметку подставлять.
9 янв 2022 в 11:29

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

При присваивании массива свойству .innerHTML , у него автоматически вызывается метод .toString , который эквивалентен вызову метода .join(‘,’) .

Таким образом, если разделители не нужны, необходимо вызвать .join явно, передав ему в качества параметра пустую строку:

.innerHTML = productList.join('') 

Отслеживать
ответ дан 9 янв 2022 в 11:07
81.6k 9 9 золотых знаков 78 78 серебряных знаков 136 136 бронзовых знаков
Да! Супер, спасибо!
9 янв 2022 в 11:11

Так как Вы используете innerHTML которое ожидает в качестве объекта приваивания строку, будет логичнее использовать функцию массива reduce которая может использоваться для массива в любой легальный объект, в данном случае в строку:

const products = [< id: 1, title: 'Notebook', price: 1000 >, < id: 2, title: 'Mouse', price: 100 >, < id: 3, title: 'Keyboard', price: 250 >, < id: 4, title: 'Gamepad', price: 150 >, ]; const renderProduct = (title, price) => < return `
$

$

`; >; const renderProducts = list => < const productList = list.reduce((acc, item) =>acc + renderProduct(item.title, item.price), ''); document.querySelector('.products').innerHTML = productList; >; renderProducts(products);

Как удалить запятую в конце массива java

Если вы хотите удалить запятую в конце массива при выводе его элементов, вы можете использовать цикл для итерации по всем элементам, кроме последнего, и добавить запятую после каждого элемента, кроме последнего. Затем вы можете вывести последний элемент массива без запятой.

int[] nums = 1, 2, 3, 4, 5>; StringBuilder sb = new StringBuilder(); for (int i = 0; i  nums.length - 1; i++)  sb.append(nums[i]).append(", "); > sb.append(nums[nums.length - 1]); String result = sb.toString(); System.out.println(result); // => 1, 2, 3, 4, 5 
  • В этом примере мы используем StringBuilder для создания строки, содержащей все элементы массива.
  • Мы проходим по всем элементам массива, кроме последнего, и добавляем их в строку, разделяя запятой и пробелом.
  • Затем мы добавляем последний элемент массива без запятой.
  • Наконец, мы выводим строку на консоль.

Оператор Запятая

Оператор запятая выполняет каждый из его операндов (слева направо) и возвращает значение последнего операнда.

Интерактивный пример

Синтаксис

expr1, expr2, expr3.

Параметры

expr1 , expr2, expr3.

Описание

Вы можете использовать оператор запятая, когда необходимо включить несколько выражений в место, которое принимает только одно выражение. Наиболее частый пример использования этого оператора — это передача нескольких параметров в цикл for .

Примеры

Если a это двумерный массив элементов размерностью 10 х 10, то приведённый ниже код использует оператор запятая для одновременного изменения двух переменных за раз.

Следующий код выводит в консоль значения диагональных элементов массива:

for (let i = 0, j = 9; i  9; i++, j--) console.log("a[" + i + "][" + j + "] token operator">+ a[i][j]); 

Заметьте, что запятая при объявлении переменной var , let или const не является оператором запятая, так как в данном случае она находится не в выражении. Скорее, это спец символ в объявлении переменных, комбинирующий их множество в одно выражение. Практически, эта запятая ведёт себя почти так же, как и запятая.

// подобное объявление запрещено в строгом режиме(strict mode) (a = b = 3), (c = 4); // возвращает 4 в консоль console.log(a); // 3 x = ((y = 5), (z = 6)); // возвращает 6 в консоль console.log(x); // 6 

Оператор запятая полностью отличается от запятой в массивах, объектах, аргументах и параметрах функции.

Вычисления и возврат значения

Другой пример использования оператора запятой – вычисления перед возвратом значения. Как было указано ранее, будет возвращён только последний элемент, но все предыдущие также будут вычислены. Таким образом можно сделать:

function myFunc()  let x = 0; return (x += 1), x; // то же самое, что return ++x; > 

Спецификации

Specification
ECMAScript Language Specification
# sec-comma-operator

Совместимость с браузерами

BCD tables only load in the browser

Как при выводе элементов массива не ставить запятую в конце?

Как в конце массива убрать запятую?
Чтобы выводилось: 1,2,3,4,5 а не 1,2,3,4, 5,
Знаю, что можно использовать implode, но есть ли другие способы?

$massive = [1, 2, 3, 4, 5]; foreach($massive as $items)
  • Вопрос задан более года назад
  • 141 просмотр

Комментировать
Решения вопроса 1

daemonhk

$massive = [1, 2, 3, 4, 5]; $items = join(', ', $massive); //или $items = implode(', ', $massive);

Ответ написан более года назад
Нравится 1 15 комментариев
Человек @xGreen_Max Автор вопроса
Так join это то же самое, что и implode.
А других способов нет?

daemonhk

User 4550, а зачем городить огороды?
Человек @xGreen_Max Автор вопроса
Одиночка Айс, ну ладно, ставлю ответ за старание, хотя я искал альтернативу implode.

delphinpro

Сергей delphinpro @delphinpro Куратор тега PHP

$massive = [1, 2, 3, 4, 5]; $isFirst = true; foreach($massive as $item) < if ($isFirst) < echo $item; $isFirst = false; >else < echo ', '.$item; >>

Человек @xGreen_Max Автор вопроса

Сергей delphinpro, воо то что нужно =)
Сразу видно умного человека =)
Хотя есть маленькая ошибка, но я ее уже исправил =)
Спасибо!

Compolomus

Дмитрий @Compolomus Куратор тега PHP

daemonhk

User 4550, все равно не понимаю зачем))
Человек @xGreen_Max Автор вопроса

Дмитрий, не работает на rtrim
выходит ошибка

$massive = [1, 2, 3, 4, 5]; $storage =[]; foreach($massive as $items) < $storage[] = $items.',' ; >rtrim($storage, ','); echo implode('', $storage);

Compolomus

Дмитрий @Compolomus Куратор тега PHP
User 4550, echo rtrim(implode(», $storage), ‘,’);
trim работает со строкой, а не с массивом
Человек @xGreen_Max Автор вопроса

Дмитрий, ясно, значит в моём случае rtrim нужно использоваться в связке с implode.
Без implode не будет работать, верно?

У меня еще возник вопрос.
Я убрал лишнюю переменную $storage из своего кода, который сверху,
но все запятые почему-то перестали выводиться.

$massive = [1, 2, 3, 4, 5]; foreach($massive as $items) < $items = $items.',' ; >echo rtrim(implode('', $massive), ',');

Compolomus

Дмитрий @Compolomus Куратор тега PHP

$array = [1, 2, 3, 4, 5]; $result = ''; foreach($array as $items) < $result .= $items . ','; >echo rtrim($result, ',');

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *