Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Пропуск Эл массива через parseInt() (https://javascript.ru/forum/misc/76454-propusk-ehl-massiva-cherez-parseint.html)

messiah 13.01.2019 14:23

Пропуск Эл массива через parseInt()
 
В html коде:
[td id='var1']число[/td] -
[td id='var12']число[/td].

Есть массив:
let arr = ['var1', 'var2'....'var12'];

Мне надо каждый val преобразовать в число (это же строки пока) и записать его в соотв. переменные var:
let var1 = parseInt($('td#var1').html());

Пишу:
for(let i= 0; i <= arr.length; i++) {
parseInt($( + " ' td#" + arr[item] + " ' " + ).html());
}
Не срабатывает. Пишу:

arr.forEach(function(item, i, arr) {
parseInt($( + " ' td#" + arr[item] + " ' " + ).html());
});
Тоже не помогает. Подскажите что не так? Подключена jQuery-2.1.0.min.js

Nexus 13.01.2019 14:31

Каждое значение в отдельную переменную складывать глупо, да и не так это просто.
Можно использовать eval, что не есть хорошо; можно гадить в глобальную ОВ, что также не хорошо.
Лучше создать массив и складировать значения в него.
Зачем у вас + перед селектором везде стоит?

const values=$('[id^="var"]').map(function(){
     return parseInt(this.textContent);
}).toArray();

j0hnik 13.01.2019 14:31

$('td[id^="var"]').each(function(){
	window[this.id] = this.textContent
});

messiah 13.01.2019 14:44

var это образное значение td. Они по разному называются все 12 значений в ячейках. + Чтоб отделить js от селектора

j0hnik 13.01.2019 14:47

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
	<table>
		<tr>
			<td id="var1">10</td>
			<td id="var2">20</td>
			<td id="var3">30</td>
			<td id="var4">40</td>
			<td id="var5">50</td>
		</tr>
	</table>

	<script>
		$('td[id^="var"]').each(function () {
			window[this.id] =+this.textContent
		});
		console.log(var1,var2,var3);

	</script>

я это понял, вы теги напишите нормально и будет работать

messiah 13.01.2019 14:51

Массив такой:
let janArr = ['prem1', 'nous1', 'ovd1', 'ovz1', 'pnvl1', 'secr1', 'szvz1', 'qual1', 'naem1', 'mat1', 'nal1', 'sum1'];
Мне надо из ячейки td (prem1...) взять числовое значение, пропарсинтить и записать уже число это в переменную prem1

messiah 13.01.2019 14:52

Я с телефона. Много писать.

messiah 13.01.2019 14:53

И так для каждой переменной в массиве

j0hnik 13.01.2019 14:58

janArr.forEach(function(el){
		window[el] = +document.getElementById(el).textContent
	});

messiah 13.01.2019 15:01

Вообщем идея такая. Я получаю зп и написал таблицу на html, где колонки это каждая надбавка и последняя колонка полученная сумма. Пока все работает, только много кода. Я хочу его сделать меньше просто. Итоге сценарий берет сумму каждой надбавки из каждой td, складывает их и сравнивает с общей полученной суммой. Если не соответствует - .show() окно, где сказано на сколько. Для их сложения я и хочу их парсинтить в числа.


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