অ্যারে টাইপস্ক্রিপ্টে একটি স্ট্রিং রয়েছে কিনা তা আমি কীভাবে পরীক্ষা করব?


274

বর্তমানে আমি Angular 2.0 ব্যবহার করছি। আমার নিম্নরূপে একটি অ্যারে রয়েছে:

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

চ্যানেলআরাইতে একটি তিনটি স্ট্রিং রয়েছে কিনা তা আমি কীভাবে টাইপস্ক্রিপ্টে চেক করতে পারি?


16
এটি হওয়া উচিতchannelArray: string[]
নিতজান টোমার


এটি টাইপস্ক্রিপ্ট-নির্দিষ্ট নয়
মাইফ্যাশনহাব

উত্তর:


522

জাভা স্ক্রিপ্টের মতোই , অ্যারে.প্রোটোটাইপ.ইন্ডেক্সঅফ () ব্যবহার করে :

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

বা ECMAScript 2016 ব্যবহার করে অ্যারে.প্রোটোটাইপ.যুক্ত () :

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

দ্রষ্টব্য যে আপনি স্ট্রিং সন্ধান করতে @ নিতজান দ্বারা দেখানো মত পদ্ধতিগুলিও ব্যবহার করতে পারেন। তবে আপনি সাধারণত স্ট্রিং অ্যারের জন্য এটি করেন না, বরং অবজেক্টগুলির একটি অ্যারের জন্য করেন। সেখানে এই পদ্ধতিগুলি আরও বুদ্ধিমান ছিল। উদাহরণ স্বরূপ

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

উল্লেখ

Array.find ()

Array.some ()

Array.filter ()


1
আমি একটি [ts] Property 'includes' does not exist on type 'string[]'ত্রুটি পেয়েছি, এই ইকমা 6 বৈশিষ্ট্যটি সমর্থন করার জন্য আমার কি আমার এসএসসিফিগ আপডেট করতে হবে?
এস ..

3
এটা বের করে আনা। আমার tsconfig.json ফাইলটিতে সম্পত্তি "lib" এর জন্য অ্যারেতে "es7" যুক্ত করা দরকার, যেমন। "lib": ["es7", "dom"]
এস ..

119

আপনি কিছু পদ্ধতি ব্যবহার করতে পারেন :

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

আপনি সন্ধানের পদ্ধতিটি ব্যবহার করতে পারেন :

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

অথবা আপনি সূচিপত্র পদ্ধতিটি ব্যবহার করতে পারেন :

console.log(channelArray.indexOf("three")); // 2

10

যদি আপনার কোডটি ES7 ভিত্তিক হয়:

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

যদি তা না হয়, উদাহরণস্বরূপ আপনি কোনও বাবেল ট্রান্সপাইল ছাড়া আইই ব্যবহার করছেন:

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

indexOfপদ্ধতি অ্যারের মধ্যে অবস্থান উপাদান আছে ফিরে আসবে, কারণ যে আমরা ব্যবহার !==-1 থেকে যদি সুই প্রথম স্থান পাওয়া যায় আলাদা।


8

এছাড়াও মনে রাখবেন যে "ইন" কীওয়ার্ড অ্যারেগুলিতে কাজ করে না। এটি কেবল বস্তুগুলিতে কাজ করে।

propName in myObject

অ্যারে অন্তর্ভুক্তি পরীক্ষা হয়

myArray.includes('three');

2
এটি উল্লেখযোগ্য একটি সমস্যা, বিশেষত যদি আপনি পাইথন থেকে এসেছেন। আরও খারাপ, এটি কোনওভাবে অ্যারেগুলিতেও কাজ করে যেহেতু তারাও বস্তুগত। আপনি সম্ভবত যেভাবে ভাবেন এটি ঠিক তেমনভাবে আমি কাজ করি না - এটি সূচী হিসাবে অ্যারেতে কিছু উপস্থিত রয়েছে কিনা তা পরীক্ষা করে।
সিটো

5

জাভাস্ক্রিপ্ট অ্যারে ব্যবহার করুন () পদ্ধতি অন্তর্ভুক্ত

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var n = fruits.includes("Mango");

নিজে চেষ্টা করুন » লিংক

সংজ্ঞা

অন্তর্ভুক্ত () পদ্ধতি নির্ধারণ করে একটি অ্যারের একটি নির্দিষ্ট উপাদান রয়েছে কি না।

এই পদ্ধতিতে অ্যারেতে উপাদান থাকে এবং সত্য না হলে মিথ্যা হয়।


1

টিএস এর অ্যারেগুলির জন্য অনেকগুলি ইউটিলিটি পদ্ধতি রয়েছে যা অ্যারের প্রোটোটাইপের মাধ্যমে উপলব্ধ। একাধিক রয়েছে যা এই লক্ষ্য অর্জন করতে পারে তবে এই উদ্দেশ্যে সবচেয়ে সুবিধাজনক দুটি হ'ল:

  1. Array.indexOf() আর্গুমেন্ট হিসাবে কোনও মান নেয় এবং তারপরে প্রথম সূচকটি প্রদান করে যেখানে কোনও প্রদত্ত উপাদান অ্যারেতে পাওয়া যায়, বা -1 উপস্থিত না থাকলে।
  2. 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


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.