English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой статье приведен пример использования фейковых массивов в JavaScript. Предлагается к рассмотрению, подробности см. ниже:
Что такое фейковый массив в JavaScript?
Фейковые массивы (подмассивы): их нельзя напрямую вызывать методы массива или ожидать специальных行为的 от свойства length, но их можно итерировать с помощью методов итерации真正的 массива.
1. Типичными примерами являются параметры функции argument,
2. Например, вызовы getElementsByTagName, document.childNodes и т.д., они все возвращают объекты NodeList, которые также являются фейковыми массивами.
Как преобразовать фейковый массив в стандартный массив?
Можете использовать Array.prototype.slice.call(fakeArray) для преобразования массива в настоящий объект Array.
Давайте рассмотрим пример, где используется фейковый массив для решения проблемы суммирования неопределенного количества параметров.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Фейковый массив</title> </head> <script> function add() { var sum = 0; console.log(arguments); for(var i=0;i<arguments.length;i++){ sum +=arguments[i]; } return sum; } console.log(add(1,2,5,8)); </script> <body> </body> </html>
Результат выполнения:
Преобразование фейкового массива в стандартный массив
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Фейковый массив</title> </head> <script> function add() { var sum = 0; console.log(arguments instanceof Array); // Это позволяет определить, является ли это настоящее массив, значение возвращает false; console.log(arguments); // В этот момент выводятся传入 параметры 1, 2, 5, 8 var arguments=Array.prototype.slice.call(arguments); // преобразование фальшивого массива в стандартный массив arguments.push(10); // в этот момент можно вызывать методы стандартного массива console.log(arguments instanceof Array); // можно определить, является ли это настоящий массив, значение возвращает true; console.log(arguments); // в этот момент выводятся переданные параметры, push之后的 массив 1,2,5,8,10 for(var i=0;i<arguments.length;i++){ sum +=arguments[i]; } return sum; } console.log(add(1,2,5,8)); </script> <body> </body> </html>
Результат выполнения:
Дополнительную информацию о JavaScript можно найти в разделах сайта: "Суммарные данные структур и алгоритмов JavaScript", "Суммарные данные о методах математических вычислений JavaScript", "Суммарные данные о сортировочных алгоритмах JavaScript", "Суммарные данные о методах и技巧ах итерации JavaScript", "Суммарные данные о методах и技巧ах поиска JavaScript" и "Суммарные данные о методах и技巧ах ошибок и отладки JavaScript".
Надеюсь, что это руководство поможет вам в программировании на JavaScript.
Заявление: содержимое этой статьи взято из Интернета, авторские права принадлежат соответствующему автору. Контент предоставлен пользователями Интернета, самостоятельно загружен, сайт не имеет права собственности, не был отредактирован вручную и не несет ответственности за связанные с этим юридические последствия. Если вы обнаружите контент,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма замените # на @), и предоставьте соответствующие доказательства. Если после проверки подтвердится, что контент нарушает права на интеллектуальную собственность, сайт немедленно удалит涉嫌侵权的内容.