Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.03.2017, 09:09
Интересующийся
Отправить личное сообщение для Zmicer Посмотреть профиль Найти все сообщения от Zmicer
 
Регистрация: 24.02.2017
Сообщений: 20

Хитрый подсчет в массиве
Добрый день! Хочу уточнить, имеется ли простое решение у след. задачи. Есть массив:
var arr = [];
arr [0] = "1 + 2  ";
arr [1] = "3* 2 ";
arr [2] = "2+5 ";
arr [3] = "1 +2";

Там разное количество пробелов, их надо сохранить. Можно ли получить массив такого вида:
arr [0] = "1 + 2 =3";
arr [1] = "3* 2 =6";
arr [2] = "2+5 =7";
arr [3] = "1 +2=3";

Т.е. посчитать и написать результат после равно, не используя кучу дополнительных действий. Что-то у меня получается уж очень громоздко. Спасибо!

Последний раз редактировалось Zmicer, 01.03.2017 в 09:11.
Ответить с цитированием
  #2 (permalink)  
Старый 01.03.2017, 09:16
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

var arr = [];
arr [0] = "1 + 2  ";
arr [1] = "3* 2 ";
arr [2] = "2+5 ";
arr [3] = "1 +2";

var newArr = arr.map(str => `${str}=${eval(str)}`);
alert(newArr);
Ответить с цитированием
  #3 (permalink)  
Старый 01.03.2017, 09:21
Интересующийся
Отправить личное сообщение для Zmicer Посмотреть профиль Найти все сообщения от Zmicer
 
Регистрация: 24.02.2017
Сообщений: 20

Сообщение от destus Посмотреть сообщение
var newArr = arr.map(str => `${str}=${eval(str)}`);
alert(newArr);
Ого, как просто оказывается! А не подскажете, где можно что-нибудь найти прочитать про этот элегантный способ? А то мне, как новичку, понять Ваш код кажется сложновато

Последний раз редактировалось Zmicer, 01.03.2017 в 09:31.
Ответить с цитированием
  #4 (permalink)  
Старый 01.03.2017, 09:22
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Zmicer,
https://learn.javascript.ru/es-string
Ответить с цитированием
  #5 (permalink)  
Старый 01.03.2017, 09:25
Интересующийся
Отправить личное сообщение для Zmicer Посмотреть профиль Найти все сообщения от Zmicer
 
Регистрация: 24.02.2017
Сообщений: 20

Сообщение от destus Посмотреть сообщение
Zmicer,
https://learn.javascript.ru/es-string
Спасибо, буду разбираться!
Ответить с цитированием
  #6 (permalink)  
Старый 01.03.2017, 10:11
Интересующийся
Отправить личное сообщение для Zmicer Посмотреть профиль Найти все сообщения от Zmicer
 
Регистрация: 24.02.2017
Сообщений: 20

Сообщение от destus Посмотреть сообщение
var arr = [];
arr [0] = "1 + 2  ";
arr [1] = "3* 2 ";
arr [2] = "2+5 ";
arr [3] = "1 +2";

var newArr = arr.map(str => `${str}=${eval(str)}`);
alert(newArr);
Хочу еще спросить, если например нужно сделать нестандартное действие, например возведение в степень, записано следующим образом:
arr [4] = "3 ^2";
Тут же, как минимум, нужно запустить метод Math.pow(3,2)
как тут можно модифицировать Ваш код?
Ответить с цитированием
  #7 (permalink)  
Старый 01.03.2017, 10:20
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Zmicer,
var arr = [];
arr [0] = "1 + 2  ";
arr [1] = "3 ^2 ";
arr [2] = "2+5 ";
arr [3] = "1 +2";

var newArr = arr.map(str => `${str}=${eval(str.replace('^', '**'))}`);
alert(newArr);
Ответить с цитированием
  #8 (permalink)  
Старый 01.03.2017, 10:22
Интересующийся
Отправить личное сообщение для Zmicer Посмотреть профиль Найти все сообщения от Zmicer
 
Регистрация: 24.02.2017
Сообщений: 20

Как просто
Ответить с цитированием
  #9 (permalink)  
Старый 01.03.2017, 10:29
Интересующийся
Отправить личное сообщение для Zmicer Посмотреть профиль Найти все сообщения от Zmicer
 
Регистрация: 24.02.2017
Сообщений: 20

Сообщение от destus Посмотреть сообщение
destus,
Я уже вас замучил, но еще один вопрос (обещаю - последний) - если все же надо посчитать что-нибудь сложнее, скажем
arr [5] = "12 #2"; вычисление наибольшего общего делителя?
Ответить с цитированием
  #10 (permalink)  
Старый 01.03.2017, 10:33
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Zmicer,
математика ограничивается модулем Math Выбирай что-то из этого https://developer.mozilla.org/ru/doc...etic_Operators
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подсчет одинаковых элементов в массиве Mayder Общие вопросы Javascript 4 13.11.2016 22:35
Проверить, есть ли значение переменной "a" в массиве "b" mav1 jQuery 6 18.03.2016 17:24
Поиск в массиве, частичное совпадение фонарик Общие вопросы Javascript 25 04.04.2013 07:43
Объекты в массиве. delias Общие вопросы Javascript 2 21.04.2010 22:28
видимость предка в массиве scuter Общие вопросы Javascript 4 13.08.2008 20:16