Saat ini saya menggunakan Angular 2.0. Saya memiliki array sebagai berikut:
var channelArray: Array<string> = ['one', 'two', 'three'];
Bagaimana saya bisa mengecek dalam TypeScript apakah channelArray berisi string 'tiga'?
Saat ini saya menggunakan Angular 2.0. Saya memiliki array sebagai berikut:
var channelArray: Array<string> = ['one', 'two', 'three'];
Bagaimana saya bisa mengecek dalam TypeScript apakah channelArray berisi string 'tiga'?
Jawaban:
Sama seperti di JavaScript, menggunakan Array.prototype.indexOf () :
console.log(channelArray.indexOf('three') > -1);
Atau menggunakan ECMAScript 2016 Array.prototype.includes () :
console.log(channelArray.includes('three'));
Perhatikan bahwa Anda juga bisa menggunakan metode seperti yang ditunjukkan oleh @Nitzan untuk menemukan string. Namun Anda biasanya tidak akan melakukannya untuk array string, melainkan untuk array objek. Di sana metode-metode itu lebih masuk akal. Sebagai contoh
const arr = [{foo: 'bar'}, {foo: 'bar'}, {foo: 'baz'}];
console.log(arr.find(e => e.foo === 'bar')); // {foo: 'bar'} (first match)
console.log(arr.some(e => e.foo === 'bar')); // true
console.log(arr.filter(e => e.foo === 'bar')); // [{foo: 'bar'}, {foo: 'bar'}]
Referensi
[ts] Property 'includes' does not exist on type 'string[]'kesalahan, apakah saya perlu memperbarui tsconfig saya untuk mendukung fitur ecma 6 ini?
"lib": ["es7", "dom"]
Anda dapat menggunakan beberapa metode :
console.log(channelArray.some(x => x === "three")); // true
Anda dapat menggunakan metode temukan :
console.log(channelArray.find(x => x === "three")); // three
Atau Anda dapat menggunakan metode indexOf :
console.log(channelArray.indexOf("three")); // 2
Jika kode Anda berbasis ES7:
channelArray.includes('three'); //will return true or false
Jika tidak, misalnya Anda menggunakan IE tanpa transpile babel:
channelArray.indexOf('three') !== -1; //will return true or false
yang indexOfmetode akan mengembalikan posisi elemen memiliki ke dalam array, karena yang kita gunakan !==berbeda dari -1 jika jarum ditemukan di posisi pertama.
Perhatikan juga bahwa kata kunci "in" tidak berfungsi pada array. Ini bekerja hanya pada objek.
propName in myObject
Tes inklusi array adalah
myArray.includes('three');
Gunakan JavaScript Array meliputi () Metode
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var n = fruits.includes("Mango");
Coba tautan " Coba Sendiri»
Definisi
Metode include () menentukan apakah array berisi elemen yang ditentukan.
Metode ini mengembalikan true jika array berisi elemen, dan false jika tidak.
TS memiliki banyak metode utilitas untuk array yang tersedia melalui prototipe Array. Ada beberapa yang dapat mencapai tujuan ini tetapi dua yang paling nyaman untuk tujuan ini adalah:
Array.indexOf() Mengambil nilai apa pun sebagai argumen dan kemudian mengembalikan indeks pertama di mana elemen yang diberikan dapat ditemukan dalam array, atau -1 jika tidak ada.Array.includes()Mengambil nilai apa pun sebagai argumen dan kemudian menentukan apakah array menyertakan nilai ini. Metode mengembalikan truejika nilai ditemukan, jika tidak false.Contoh:
var channelArray: string[] = ['one', 'two', 'three'];
console.log(channelArray.indexOf('three')); // 2
console.log(channelArray.indexOf('three') > -1); // true
console.log(channelArray.indexOf('four') > -1); // false
console.log(channelArray.includes('three')); // ture
Anda bisa menggunakannya filterjuga
this.products = array_products.filter((x) => x.Name.includes("ABC"))
lakukan seperti ini:
departments: string[]=[];
if(this.departments.indexOf(this.departmentName.trim()) >-1 ){
return;
}
channelArray: string[]