2017-12-06 3 views
0

Ich lerne ES6 und versuche, neue für mich zu verwenden endsWith. Vorher habe ich in einigen meiner Skripte includes verwendet, und ich dachte, dass die Mechanik gleich sein wird. Ich wählte eine zufällige Aufgabe: Ich habe Domänenliste und möchte alle "CN" -Domains filtern. Die Logik ist:endet mit Array in ES6

let ends = [".cn",".tw",".jp"] 
for(let i=0;i<arrayOfDomains.length;i++){ 
    const host = /https?:\/\/(www\.)?([a-zA-Z0-9-]+\.)+[a-zA-Z0-9]+/.exec(arrayOfDomains[i])[0]; 
    console.log(host.endsWith(ends)) 
} 

und Ergebnis console.log alle false. Gibt es eine Möglichkeit, Array in endsWith zu verwenden?

+0

[Nein, es dauert eine Zeichenfolge und optional eine Zahl.] (Https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith) – jonrsharpe

Antwort

1

Nein, es gibt keine Möglichkeit, ein Array in endsWith zu verwenden. Eine Option besteht darin, eine andere Funktion zu deklarieren, die das ends-Array und die Hostvariable als Parameter verwendet.

Sie können so etwas wie dies versuchen:

let ends = [".cs", ".com"]; 
let host = "www.page.com"; 
let hostEndsWith = (host, ends) => { 
    let value = false; 
    value = ends.some(element => { 
     return host.endsWith(element); 
    }); 
    console.log(value); 
}; 

hostEndsWith(host, ends); 

Sie diesen Code in JSFiddle kopieren kann es zu testen.

Hier ist die Information über die endsWith Funktion endsWith informartion

Ich hoffe, das hilft Ihnen!