Предисловие
Проблема, столкнутая в интервью: функция суммы массива JS. Первое, о чем я думаю, это петель массивов. Тем не менее, я думаю, что интервьюер попросил этот вопрос не принимать известный метод. В то время я был настолько умным, что думал о рекурсивной функции, постоянно добавляющем элементы в массив, но я не смог скорректировать метод через долгое время. Оказалось, что это было не оптимальное решение. Наконец, интервьюер спросил меня, видел ли я reduce() раньше, но это было на самом деле. Поэтому, когда я смотрю информацию, Array.reduce() является новым атрибутом, добавленным в ES5, а аналогичные - Array.reduceRight()。
Давайте суммируем метод суммирования массивов ниже.
Самый грубый путь: приобретение петли
Добавьте один через один через петлю. Посмотрите на код:
Array.prototype.sum = function () {var result = 0; for (var i = 0; i <this.length; i ++) {result+= this [i]; } return result;}; [1,4,7,2,10] .sum (); // 24Используйте метод уменьшения
Используя метод reduce , вы можете написать метод sum для суммирования массива.
Метод reduce() получает функцию в качестве аккумулятора, и каждое значение в массиве (слева направо) начинает сокращаться и в конечном итоге становится значением.
Синтаксис уменьшения:
array.reduce (обратный вызов [, initialValue]);
Функция callback принимает 4 параметры: previousValue (значение, возвращаемое последним обратным вызовом), currentValue (текущий элемент обрабатывается), index (индекс) и сам массив (первый параметр callback вызывает впервые) и выполняет функцию для каждого значения в массиве.
Параметр initialValue является необязательным, указывая на начальное значение; Если указан параметр initialValue , он рассматривается как previous значение, которое первоначально использовалось. Если по умолчанию первый элемент массива используется в качестве previous начального значения, а current - одно место в задней части.
Array.prototype.sum = function () {return this.reduce (function (partial, value) {return partial + value;})}; [1,4,7,2,10] .sum (); // 24 По сравнению с первым методом, использование метода reduce() является более эффективным.
Сравнение эффективности этих двух методов может напрямую вызовать new Date() до и после выполнения функции для получения времени в режиме реального времени, тем самым сравнивая время выполнения с разницей во времени. Я не буду сравнивать это здесь, потому что среда казни все сильно меняется. Результатом теста является то, что время выполнения метода reduce() короче.
Функция суммы массива JS и найти максимальное значение в массиве
Пример кода
<! Doctype html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> xmlns = "http://www.w3.org/1999/xhtml"> <head> <meta http-equiv = "content-type" content = "text/html; charset = gb2312" /><title> wulin.net_js Summance Summax_wulin. Content = "Webmaster, Специальные эффекты веб-страницы, код спецэффектов веб-страницы, JS Special Effects, JS-сценарии, сценарии, рекламные коды, VEVB.com, www.vevb.com, wulin.com" /> <meta name = "description" Content = "www.vevb.com, wulin.com, веб-мастерские должны иметь специальные эффекты JS-специальные эффекты и рекламные коды. Загрузка кода рекламы, все на wulin.com "/> </head> <body> <a href =" // www.vevb.com/"> wulin.com </a>, веб-мастера должны иметь высококачественные спецэффекты веб-страницы и рекламные коды. VEVB.com, Special Effects Webmaster JS. <hr> <script type = "text/javascript"> // sum array.prototype.sum = function () {for (var sum = i = 0; i <this.length; i ++) sum+= parseint (this [i]); return sum;}; // Поиск максимальных значений массив. return maxvalue;}; // Применить var arr = [1,21,3,4,22,45,60,7,32]; alert (arr.join (" +") + "=" + arr.sum ()); Alert (arr.join ("|") + ", самое большое число:" + arr.maxima ()); </script> </body> </html>Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого использования JavaScript. Если у вас есть какие -либо вопросы, пожалуйста, оставьте сообщение и обсудите его. Редактор ответит на всех вовремя.