वर्तमान में मैं Angular 2.0 का उपयोग कर रहा हूं। मेरे पास एक सरणी है जो इस प्रकार है:
var channelArray: Array<string> = ['one', 'two', 'three'];
मैं टाइपस्क्रिप्ट में कैसे जांच सकता हूं कि क्या चैनलअरे में एक स्ट्रिंग 'तीन' है?
वर्तमान में मैं Angular 2.0 का उपयोग कर रहा हूं। मेरे पास एक सरणी है जो इस प्रकार है:
var channelArray: Array<string> = ['one', 'two', 'three'];
मैं टाइपस्क्रिप्ट में कैसे जांच सकता हूं कि क्या चैनलअरे में एक स्ट्रिंग 'तीन' है?
जवाबों:
Array.prototype.indexOf () का उपयोग करके जावास्क्रिप्ट के समान ही :
console.log(channelArray.indexOf('three') > -1);
या ECMAScript 2016 Array.prototype.includes () का उपयोग कर :
console.log(channelArray.includes('three'));
ध्यान दें कि आप स्ट्रिंग खोजने के लिए @Nitzan द्वारा दिखाए गए तरीकों का भी उपयोग कर सकते हैं। हालाँकि आप आमतौर पर ऐसा नहीं करेंगे स्ट्रिंग स्ट्रिंग के लिए, बल्कि वस्तुओं की एक सरणी के लिए। वहां वे तरीके ज्यादा समझदार थे। उदाहरण के लिए
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'}]
संदर्भ
[ts] Property 'includes' does not exist on type 'string[]'
त्रुटि मिलती है , क्या मुझे इस एक्मा 6 सुविधा का समर्थन करने के लिए अपने tsconfig को अपडेट करने की आवश्यकता है?
"lib": ["es7", "dom"]
आप कुछ विधि का उपयोग कर सकते हैं :
console.log(channelArray.some(x => x === "three")); // true
आप खोज विधि का उपयोग कर सकते हैं :
console.log(channelArray.find(x => x === "three")); // three
या आप indexOf विधि का उपयोग कर सकते हैं :
console.log(channelArray.indexOf("three")); // 2
यदि आपका कोड ES7 आधारित है:
channelArray.includes('three'); //will return true or false
यदि नहीं, तो उदाहरण के लिए आप IE का उपयोग कर रहे हैं जिसमें कोई बेबिल ट्रांसपाइल नहीं है:
channelArray.indexOf('three') !== -1; //will return true or false
indexOf
विधि सरणी में स्थिति तत्व है वापस आ जाएगी, क्योंकि इस बात का हम प्रयोग !==
-1 से अगर सुई पहले की स्थिति में पाया जाता है अलग।
यह भी ध्यान दें कि "इन" कीवर्ड सरणियों पर काम नहीं करता है। यह वस्तुओं पर ही काम करता है।
propName in myObject
एरियर इंक्लूजन टेस्ट है
myArray.includes('three');
जावास्क्रिप्ट सरणी का उपयोग करें () विधि शामिल हैं
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var n = fruits.includes("Mango");
यह अपने आप कोशिश करें » लिंक
परिभाषा
भी शामिल है () तरीका निर्धारित करता है एक सरणी एक निर्दिष्ट तत्व शामिल है या नहीं।
यह विधि सही होती है यदि सरणी में तत्व होता है, और यदि नहीं तो गलत है।
TS में सरणियों के लिए कई उपयोगिता विधियां हैं जो Arrays के प्रोटोटाइप के माध्यम से उपलब्ध हैं। ऐसे कई हैं जो इस लक्ष्य को प्राप्त कर सकते हैं लेकिन इस उद्देश्य के लिए दो सबसे सुविधाजनक हैं:
Array.indexOf()
किसी भी मूल्य को एक तर्क के रूप में लेता है और फिर पहला सूचकांक देता है जिस पर किसी दिए गए तत्व को सरणी में पाया जा सकता है, या -1 मौजूद नहीं होने पर।Array.includes()
किसी भी मान को तर्क के रूप में लेता है और फिर निर्धारित करता है कि किसी सरणी में यह मान शामिल है या नहीं। true
मान मिलने पर वापसी की विधि , अन्यथा false
।उदाहरण:
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
आप उपयोग कर सकते हैं filter
भी
this.products = array_products.filter((x) => x.Name.includes("ABC"))
इसे अवश्य पसंद करें:
departments: string[]=[];
if(this.departments.indexOf(this.departmentName.trim()) >-1 ){
return;
}
channelArray: string[]