Heim Web-Frontend js-Tutorial javascript from() 方法将一个类数组对象转换成真实的数组

javascript from() 方法将一个类数组对象转换成真实的数组

Jun 01, 2016 am 09:54 AM
from js 转换

<strong>Array.from()</strong> 方法可以将一个类数组对象或可迭代对象转换成真实的数组。

from语法

<code class="language-javascript">Array.from(arrayLike[, mapFn[, thisArg]])
</code>
Nach dem Login kopieren

 

from参数

参数 说明
arrayLike 想要转换成真实数组的类数组对象或可迭代对象。
mapFn 可选参数,如果指定了该参数,则最后生成的数组会经过该函数的加工处理后再返回。
thisArg 可选参数,执行 mapFn 函数时 this 的值。

你可以使用 Array.from() 将下面的两种对象转换成数组:

  • 类数组对象(拥有一个 length 属性和若干索引属性的任意对象)
  • 可迭代对象(你可以从它身上迭代出若干个元素的对象,比如有 Map 和 Set 等)

Array.from() 方法有一个可选参数 mapFn,让你可以在最后生成的数组上再执行一次 map 方法后再返回。也就是说 Array.from(obj, mapFn, thisArg) 就相当于 Array.from(obj).map(mapFn, thisArg), 除非创建的不是可用的中间数组。 这对一些数组的子类,如  typed arrays 来说很重要, 因为中间数组的值在调用 map() 时需要是适当的类型。

from() 的 length 属性为 1 。

 

from实例:

<code class="language-javascript">// 将类数组对象(arguments)转换成数组
(function () {
    var args = Array.from(arguments);
    return args;
})(1, 2, 3);                            // [1, 2, 3]

// 将可迭代对象(Set 对象)转换成数组
Array.from(Set(["foo", window]));       // ["foo", window]

// Map 对象也可以
var m = new Map([[1, 2], [2, 4], [4, 8]]);
Array.from(m);                          // [[1, 2], [2, 4], [4, 8]]  

// 字符串对象既是类数组又是可迭代对象
Array.from("foo");                      // ["f", "o", "o"]

// 使用 map 函数转换数组元素
Array.from([1, 2, 3], x => x + x);      // [2, 4, 6]

// 生成一个数字序列
Array.from({length:5}, (v, k) => k);    // [0, 1, 2, 3, 4]</code>
Nach dem Login kopieren

 

from兼容性解决方法

ECMA-262 第六版标准添加了 Array.from 。有些实现中可能尚未包括。你可以通过在脚本前添加如下内容作为替代方法,以使用未原生支持的 Array.from 方法。该算法按照  ECMA-262 第六版中的规范实现,并假定Object 和 TypeError 有其本身的值,  callback.call 对应 Function.prototype.call 。此外,鉴于无法使用 Polyfill 实现真正的的迭代器,该实现不支持规范中定义的泛型可迭代元素。

<code class="language-javascript">// Production steps of ECMA-262, Edition 6, 22.1.2.1
// Reference: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from
if (!Array.from) {
  Array.from = (function () {
    var toStr = Object.prototype.toString;
    var isCallable = function (fn) {
      return typeof fn === 'function' || toStr.call(fn) === '[object Function]';
    };
    var toInteger = function (value) {
      var number = Number(value);
      if (isNaN(number)) { return 0; }
      if (number === 0 || !isFinite(number)) { return number; }
      return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
    };
    var maxSafeInteger = Math.pow(2, 53) - 1;
    var toLength = function (value) {
      var len = toInteger(value);
      return Math.min(Math.max(len, 0), maxSafeInteger);
    };

    // The length property of the from method is 1.
    return function from(arrayLike/*, mapFn, thisArg */) {
      // 1. Let C be the this value.
      var C = this;

      // 2. Let items be ToObject(arrayLike).
      var items = Object(arrayLike);

      // 3. ReturnIfAbrupt(items).
      if (arrayLike == null) {
        throw new TypeError("Array.from requires an array-like object - not null or undefined");
      }

      // 4. If mapfn is undefined, then let mapping be false.
      var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
      var T;
      if (typeof mapFn !== 'undefined') {
        // 5. else      
        // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
        if (!isCallable(mapFn)) {
          throw new TypeError('Array.from: when provided, the second argument must be a function');
        }

        // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.
        if (arguments.length > 2) {
          T = arguments[2];
        }
      }

      // 10. Let lenValue be Get(items, "length").
      // 11. Let len be ToLength(lenValue).
      var len = toLength(items.length);

      // 13. If IsConstructor(C) is true, then
      // 13. a. Let A be the result of calling the [[Construct]] internal method of C with an argument list containing the single item len.
      // 14. a. Else, Let A be ArrayCreate(len).
      var A = isCallable(C) ? Object(new C(len)) : new Array(len);

      // 16. Let k be 0.
      var k = 0;
      // 17. Repeat, while k </code>
Nach dem Login kopieren

 

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Praktische Tipps zum Konvertieren von englischen Buchstaben voller Breite in halbbreite Buchstaben Praktische Tipps zum Konvertieren von englischen Buchstaben voller Breite in halbbreite Buchstaben Mar 26, 2024 am 09:54 AM

Praktische Tipps zum Umwandeln von englischen Buchstaben in voller Breite in Formen mit halber Breite. Im modernen Leben kommen wir häufig mit englischen Buchstaben in Kontakt und müssen bei der Verwendung von Computern, Mobiltelefonen und anderen Geräten häufig englische Buchstaben eingeben. Manchmal stoßen wir jedoch auf englische Buchstaben in voller Breite und müssen die Form mit halber Breite verwenden. Wie konvertiert man also englische Buchstaben in voller Breite in die Form mit halber Breite? Hier sind einige praktische Tipps für Sie. Erstens beziehen sich englische Buchstaben und Zahlen in voller Breite auf Zeichen, die in der Eingabemethode eine Position in voller Breite einnehmen, während englische Buchstaben und Zahlen in halber Breite eine Position in voller Breite einnehmen.

Wie konvertiert man ODT in Word in Windows 11/10? Wie konvertiert man ODT in Word in Windows 11/10? Feb 20, 2024 pm 12:21 PM

In diesem Artikel zeigen wir Ihnen, wie Sie OpenDocumentTextDocument (ODT)-Dateien in Microsoft Word (Docx, DOC usw.) konvertieren. Format. So konvertieren Sie ODT in Word in Windows 11/10. So können Sie ODT-Dokumente auf einem Windows-PC in das DOC- oder DOCX-Format konvertieren: Konvertieren Sie ODT in Word mit WordPad oder Word. Die erste Methode, die wir Ihnen zeigen werden, ist die Verwendung von WordPad oder Word MicrosoftWord zum Konvertieren von ODT in Word. Hier sind die Schritte, um dies zu erreichen: Öffnen Sie zunächst die WordPad-App über das Startmenü. Jetzt geh zu

Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Apr 03, 2024 am 11:55 AM

Die Technologie zur Gesichtserkennung und -erkennung ist bereits eine relativ ausgereifte und weit verbreitete Technologie. Derzeit ist JS die am weitesten verbreitete Internetanwendungssprache. Die Implementierung der Gesichtserkennung und -erkennung im Web-Frontend hat im Vergleich zur Back-End-Gesichtserkennung Vor- und Nachteile. Zu den Vorteilen gehören die Reduzierung der Netzwerkinteraktion und die Echtzeiterkennung, was die Wartezeit des Benutzers erheblich verkürzt und das Benutzererlebnis verbessert. Die Nachteile sind: Es ist durch die Größe des Modells begrenzt und auch die Genauigkeit ist begrenzt. Wie implementiert man mit js die Gesichtserkennung im Web? Um die Gesichtserkennung im Web zu implementieren, müssen Sie mit verwandten Programmiersprachen und -technologien wie JavaScript, HTML, CSS, WebRTC usw. vertraut sein. Gleichzeitig müssen Sie auch relevante Technologien für Computer Vision und künstliche Intelligenz beherrschen. Dies ist aufgrund des Designs der Webseite erwähnenswert

So konvertieren Sie AI-Dateien in das CDR-Format So konvertieren Sie AI-Dateien in das CDR-Format Feb 19, 2024 pm 04:09 PM

AI-Dateien beziehen sich auf Vektorgrafikdateien, die mit der Software Adobe Illustrator (kurz AI) erstellt wurden, während sich CDR-Dateien auf Vektorgrafikdateien beziehen, die mit der Software CorelDRAW erstellt wurden. Da diese beiden Softwareprogramme von unterschiedlichen Herstellern entwickelt werden, sind ihre Dateiformate unterschiedlich und können nicht direkt ineinander konvertiert werden. Allerdings können wir AI-Dateien mit einigen Methoden in CDR-Dateien konvertieren. Im Folgenden wird eine häufig verwendete Konvertierungsmethode vorgestellt. Schritt 1: AI-Dateien in das EPS-Format AdobeIllust exportieren

Wie konvertiert man eine virtuelle Maschine in eine physische Maschine? Wie konvertiert man eine virtuelle Maschine in eine physische Maschine? Feb 19, 2024 am 11:40 AM

Beim Konvertieren einer virtuellen Maschine (VM) in eine physische Maschine werden eine virtuelle Instanz und die zugehörige Anwendungssoftware auf eine physische Hardwareplattform migriert. Diese Konvertierung trägt zur Optimierung der Betriebssystemleistung und der Hardware-Ressourcennutzung bei. Dieser Artikel soll einen detaillierten Einblick in die Durchführung dieser Konvertierung geben. Wie implementiert man die Migration von einer virtuellen Maschine zu einer physischen Maschine? Typischerweise wird der Konvertierungsprozess zwischen einer virtuellen Maschine und einer physischen Maschine außerhalb der virtuellen Maschine durch Software von Drittanbietern durchgeführt. Dieser Prozess besteht aus mehreren Phasen, die die Konfiguration virtueller Maschinen und die Übertragung von Ressourcen umfassen. Vorbereiten der physischen Maschine: Der erste Schritt besteht darin, sicherzustellen, dass die physische Maschine die Hardwareanforderungen für Windows erfüllt. Wir müssen die Daten auf einer physischen Maschine sichern, da der Konvertierungsprozess die vorhandenen Daten überschreibt. *Benutzername und Passwort für ein Administratorkonto mit Administratorrechten zum Erstellen von Systemabbildern. wird virtuell sein

Golang-Zeitverarbeitung: So konvertieren Sie Zeitstempel in Golang in einen String Golang-Zeitverarbeitung: So konvertieren Sie Zeitstempel in Golang in einen String Feb 24, 2024 pm 10:42 PM

Golang-Zeitkonvertierung: So konvertieren Sie einen Zeitstempel in einen String. In Golang ist die Zeitoperation eine der häufigsten Operationen. Manchmal müssen wir den Zeitstempel zur einfacheren Anzeige oder Speicherung in eine Zeichenfolge umwandeln. In diesem Artikel wird erläutert, wie Sie mit Golang Zeitstempel in Zeichenfolgen konvertieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Konvertierung von Zeitstempeln und Zeichenfolgen In Golang werden Zeitstempel normalerweise in Form von Ganzzahlen ausgedrückt, die die Anzahl der Sekunden vom 1. Januar 1970 bis zum aktuellen Zeitpunkt darstellen. Die Zeichenfolge ist

Detaillierte Erläuterung der Implementierungsmethode zur Konvertierung von PHP-Monaten in englische Monate Detaillierte Erläuterung der Implementierungsmethode zur Konvertierung von PHP-Monaten in englische Monate Mar 21, 2024 pm 06:45 PM

In diesem Artikel wird detailliert beschrieben, wie Monate in PHP in englische Monate konvertiert werden, und es werden spezifische Codebeispiele gegeben. In der PHP-Entwicklung müssen wir manchmal digitale Monate in englische Monate konvertieren, was in einigen Datumsverarbeitungs- oder Datenanzeigeszenarien sehr praktisch ist. Die Implementierungsprinzipien, spezifischen Codebeispiele und Vorsichtsmaßnahmen werden im Folgenden ausführlich erläutert. 1. Implementierungsprinzip In PHP können Sie digitale Monate mithilfe der DateTime-Klasse und der Formatmethode in englische Monate konvertieren. Datum

So konvertieren Sie QQ-Musik in das MP3-Format. Konvertieren Sie QQ-Musik auf dem Mobiltelefon in das MP3-Format So konvertieren Sie QQ-Musik in das MP3-Format. Konvertieren Sie QQ-Musik auf dem Mobiltelefon in das MP3-Format Mar 21, 2024 pm 01:21 PM

Mit QQ Music kann jeder Filme genießen und sich jeden Tag langweilen. Eine große Anzahl hochwertiger Songs steht zum Anhören zur Verfügung Wenn Sie sie das nächste Mal anhören, benötigen Sie keine Internetverbindung. Die hier heruntergeladenen Songs sind nicht im MP3-Format und können nicht auf anderen Plattformen verwendet werden. Daher gibt es keine Möglichkeit, sie erneut anzuhören Viele Freunde möchten die Songs ins MP3-Format konvertieren. Hier erklärt der Herausgeber, dass Sie Methoden bereitstellen, damit jeder sie verwenden kann! 1. Öffnen Sie QQ Music auf Ihrem Computer, klicken Sie auf die Schaltfläche [Hauptmenü] in der oberen rechten Ecke, klicken Sie auf [Audiotranskodierung], wählen Sie die Option [Song hinzufügen] und fügen Sie die Songs hinzu, die konvertiert werden müssen. 2. Nach dem Hinzufügen Um die Songs anzuzeigen, klicken Sie, um „In [mp3] konvertieren“ auszuwählen.

See all articles