de-vraag
  • Pytania
  • Tagi
  • Użytkownicy
Powiadomienia
Nagrody
Rejestracja
Po zarejestrowaniu się, będziesz otrzymywać powiadomienia o odpowiedziach i komentarzach do swoich pytań.
Zaloguj się
Brak tłumaczeń pasujących do Twojego wyszukiwania Jeśli masz już konto, zaloguj się, aby sprawdzić nowe powiadomienia.
Za dodane pytania, odpowiedzi i komentarze przewidziane są nagrody.
Więcej
Źródło
Edytuj
 code1
code1
Question

Jak sprawdzić czy tablica zawiera ciąg znaków w TypeScript?

Obecnie używam Angular 2.0. Mam tablicę w następujący sposób:

var channelArray: Array<string> = ['one', 'two', 'three'];

Jak mogę sprawdzić w TypeScript, czy tablica channelArray zawiera ciąg 'three'?

209 2017-03-14T15:50:26+00:00 3
 Oswald
Oswald
Edytowane pytanie 14. maja 2018 в 12:15
Programowanie
arrays
javascript
typescript
To pytanie ma 1 odpowiedź w języku angielskim, aby je przeczytać zaloguj się na swoje konto.
Solution / Answer
chris  p bacon
chris p bacon
14. marca 2017 в 3:58
2017-03-14T15:58:24+00:00
Więcej
Źródło
Edytuj
#33012842

Tak samo jak w JavaScript, używając Array.prototype.indexOf():

console.log(channelArray.indexOf('three') > -1);

Lub używając ECMAScript 2016 Array.prototype.includes():

console.log(channelArray.includes('three'));

Zauważ, że możesz również użyć metod takich jak pokazane przez @Nitzan, aby znaleźć ciąg znaków. Jednak zazwyczaj nie robiłbyś tego dla tablicy łańcuchów, ale raczej dla tablicy obiektów. Tam te metody były bardziej sensowne. Na przykład

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'}]

Odnośnik

Array.find()

Array.some()

Array.filter()

chris  p bacon
chris p bacon
Edytowana odpowiedź 10. maja 2019 в 4:47
413
0
Nitzan Tomer
Nitzan Tomer
14. marca 2017 в 3:58
2017-03-14T15:58:03+00:00
Więcej
Źródło
Edytuj
#33012841

Możesz użyć jakiejś metody:

console.log(channelArray.some(x => x === "three")); // true

Możesz użyć metody find method:

console.log(channelArray.find(x => x === "three")); // three

Możesz też użyć metody indexOf:

console.log(channelArray.indexOf("three")); // 2
109
0
 alejoko
alejoko
4. stycznia 2019 в 1:51
2019-01-04T13:51:07+00:00
Więcej
Źródło
Edytuj
#33012843

Jeśli twój kod jest oparty na ES7:

channelArray.includes('three'); //will return true or false

Jeśli nie, na przykład używasz IE bez babel transpile:

channelArray.indexOf('three') !== -1; //will return true or false

metoda indexOf zwróci pozycję elementu w tablicy, z tego powodu używamy !== różnej od -1 jeśli igła jest znaleziona na pierwszej pozycji.

 alejoko
alejoko
Edytowana odpowiedź 4. stycznia 2019 в 1:58
7
0
Dodaj pytanie
Kategorie
Wszystkie
Technologia
Kultura / Rekreacja
Życie / Sztuka
Nauka
Profesjonalny
Biznes
Użytkownicy
Wszystkie
Nowy
Popularny
1
365
Zarejestrowany 1 dzień temu
2
True Image
Zarejestrowany 1 dzień temu
3
archana agarwal
Zarejestrowany 3 dni temu
4
Maxim Zhilyaev
Zarejestrowany 6 dni temu
5
adambotsfford adambotsfford
Zarejestrowany 1 tydzień temu
DA
DE
EL
ES
FI
FR
ID
IT
JA
KO
LT
NL
PL
PT
RU
TR
ZH
© de-vraag 2022
Źródło
stackoverflow.com
na podstawie licencji cc by-sa 3.0 z przypisaniem