অ্যারের প্রথম উপাদানটি কীভাবে পাবেন?


236

আপনি এই জাতীয় অ্যারে থেকে প্রথম উপাদানটি কীভাবে পাবেন:

var ary = ['first', 'second', 'third', 'fourth', 'fifth'];

আমি এটি চেষ্টা করেছি:

alert($(ary).first());

তবে তা ফিরে আসত [object Object]। সুতরাং অ্যারের থেকে আমার প্রথম উপাদানটি পাওয়া উচিত যা উপাদান হওয়া উচিত 'first'


উত্তর:


338

এটার মত

alert(ary[0])

35
var a = []; a[7] = 'foo'; alert(a[0]);
পেটাঃ

72
এটি ধরে নেওয়া হয় যে অ্যারের প্রথম উপাদানটির সর্বদা 0 এর সূচক থাকে আপনি জানেন যে অনুমান সম্পর্কে তারা কী বলেছেন ...
অ্যান্ডি

16
@ অ্যান্ডি কোনও অনুমান ছিল না, কারণ ওপির প্রশ্নটি বেশ স্পষ্ট এবং সুনির্দিষ্ট ছিল।
জন হার্টসক

5
@ পেটায় এই কোডটিতে কোনও ভুল নেই। এটি কেবল অপরিবর্তিত দেখায়, যেহেতু এটি [0] এর মান, যা অ্যারেতে প্রথম আইটেম। আপনি যদি এটি ফু দেখাতে চান তবে আপনার সমস্ত অপরিজ্ঞাত মান বাদ দেওয়া উচিত তবে এটি অ্যারের মধ্যে প্রথম আইটেম হবে না।
মিচিয়েল ভ্যান ডার ব্লঙ্ক

5
@ মিচিয়েলভান্ডার ব্লোনক আমি কেবল এমন একটি প্রান্তের বিষয়টি দেখিয়েছিলাম যা কিছু ব্যবহারকারী আশা করতে পারে না।
পেটাঃ

202

আপনি কেন ভিনিলা জাভাস্ক্রিপ্ট অ্যারে jQuery- করছেন? স্ট্যান্ডার্ড জাভাস্ক্রিপ্ট ব্যবহার করুন!

var ary = ['first', 'second', 'third', 'fourth', 'fifth'];
alert(ary[0]);

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array

এছাড়াও, আরও jQuery প্রয়োজন

উত্স , বোবিন্স সৌজন্যে


1
পড়ুন এই উত্তরটি কেন এই সমাধান সবসময় কাজ করে না করে।
গুস্তাভো স্ট্রাউব

92

বিভিন্ন পরিস্থিতিতে নীচের কয়েকটি উপায়।

বেশিরভাগ সাধারণ ক্ষেত্রে, প্রথম উপাদানটি অ্যাক্সেস করার সহজ উপায়টি হয়

yourArray[0]

তবে এটির জন্য আপনার [0] আসলে বিদ্যমান কিনা তা পরীক্ষা করা দরকার check

এমন আসল ওয়ার্ল্ড কেস রয়েছে যেখানে আপনি আসল অ্যারে সম্পর্কে চিন্তা করেন না এবং সূচকের অস্তিত্ব আছে কিনা তা খতিয়ে দেখতে চান না, আপনি কেবল প্রথম উপাদান বা অপরিবর্তিত ইনলাইন পেতে চান।

এই ক্ষেত্রে, আপনি প্রথম উপাদানটি পেতে শিফ্ট () পদ্ধতিটি ব্যবহার করতে পারেন তবে সতর্ক হন যে এই পদ্ধতিটি মূল অ্যারেটি পরিবর্তন করে (প্রথম আইটেমটি সরিয়ে দেয় এবং ফেরত দেয়)। সুতরাং একটি অ্যারের দৈর্ঘ্য এক দ্বারা হ্রাস করা হয়। এই পদ্ধতিটি ইনলাইন ক্ষেত্রে ব্যবহার করা যেতে পারে যেখানে আপনাকে কেবল প্রথম উপাদানটি পাওয়া দরকার, তবে আপনি মূল অ্যারে সম্পর্কে যত্নবান হন না।

yourArray.shift()

আপনার গুরুত্বপূর্ণ অ্যারেটি [0] সূচক দিয়ে শুরু হয় তবে উপরের দুটিটি কেবল একটি বিকল্প হিসাবে জানতে হবে know

এমন কিছু ঘটনা রয়েছে যেখানে প্রথম উপাদানটি মুছে ফেলা হয়েছে, উদাহরণস্বরূপ, আপনার অ্যারে [0] মুছে ফেলুন "অ্যারে" দিয়ে আপনার অ্যারে রেখে। এখন [0] এ উপাদানটি কেবল অপরিজ্ঞাত, তবে আপনি প্রথম "বিদ্যমান" উপাদানটি পেতে চান। আমি এর অনেক বাস্তব বিশ্বের কেস দেখেছি।

সুতরাং, ধরে নিই যে অ্যারে এবং প্রথম কীটি সম্পর্কে আমাদের কোনও জ্ঞান নেই (বা আমরা জানি ছিদ্র রয়েছে) আমরা এখনও প্রথম উপাদানটি পেতে পারি।

আপনি প্রথম উপাদানটি পেতে () ব্যবহার করতে পারেন ।

শর্তটি সন্তুষ্ট করে প্রথম মানটি পৌঁছে গেলে লুপটি থেকে বেরিয়ে আসার সাথে সাথে () এর কার্যকারিতা হ'ল (নীচে এটি সম্পর্কে আরও)। (নাল বা অন্যান্য খালি মানগুলিও বাদ দিতে আপনি শর্তটি অনুকূলিত করতে পারেন)

var firstItem = yourArray.find(x=>x!==undefined);

আমি অনুলিপিটিতে অ্যারেটিকে প্রথমে "ফিক্স" করার বিকল্প হিসাবে ফিল্টার () এখানে অন্তর্ভুক্ত করতে চাই এবং তারপরে মূল অ্যারেটি অক্ষত রাখার সময় প্রথম উপাদানটি পেয়ে যাব (অশোধিত)।

ফিল্টার () এখানে অন্তর্ভুক্ত করার আরেকটি কারণ হ'ল এটি (সন্ধানের আগে) বিদ্যমান ছিল এবং অনেক প্রোগ্রামার ইতিমধ্যে এটি ব্যবহার করে চলেছে (এটি ES5 হ'ল ফাইন্ডের () ES6 হচ্ছে)।

var firstItem = yourArray.filter(x => typeof x!==undefined).shift();

ফিল্টার () প্রকৃতপক্ষে কার্যকর উপায় নয় (ফিল্টার () সমস্ত উপাদান দিয়ে চলছে) এবং অন্য একটি অ্যারে তৈরি করে War ছোট অ্যারেগুলিতে ব্যবহার করা ভাল, কারণ পারফরম্যান্সের প্রভাবটি প্রান্তিক হবে, উদাহরণস্বরূপ forEach ব্যবহারের কাছাকাছি।

(আমি দেখতে পাচ্ছি কিছু লোক প্রথম উপাদানটি পেতে ... লুপের জন্য ব্যবহার করার পরামর্শ দিচ্ছে, তবে আমি এই পদ্ধতির বিরুদ্ধে সুপারিশ করবো ... ইনডেক্স আদেশটি গুরুত্বপূর্ণ এমন কোনও অ্যারেতে পুনরাবৃত্তি করতে ব্যবহার করা উচিত নয় কারণ এটি না করে ' অর্ডারটির গ্যারান্টি দেওয়া সত্ত্বেও আপনি ব্রাউজারগুলি বেশিরভাগ অর্ডারকে সম্মান জানাতে পারেন y উপায় অনুসারে, কারণ প্রতিটি ব্যক্তি সমস্যাটি সমাধান করে না কারণ আপনি এটি ভেঙে ফেলতে পারবেন না এবং এটি সমস্ত উপাদানের মধ্য দিয়ে চলবে for লুপ এবং কী / মান পরীক্ষা করে

() এবং ফিল্টার () উভয়ই উপাদানগুলির ক্রমের গ্যারান্টি দেয়, সুতরাং উপরের মত ব্যবহার করা নিরাপদ।


1
পরে কেবল অ্যারেটি আনশিফ্ট করা হবে না কেন, যেমন: var عنصر = আপনারআরএ.শিফ্ট (); yourArray.unshift (উপাদান);
গ্রেগ

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

1
@ স্লে যা দোভাষীর নির্দিষ্ট অভ্যন্তরগুলির উপর নির্ভর করে।
মিচিয়েল ভ্যান ডার ব্লঙ্ক

@ মিচিয়েল ভ্যান ডের ব্লঙ্ক আপনি কি দয়া করে আমাকে জানান যে কোন দোভাষী তার উল্লেখ হিসাবে এটি করেন? আমি খুব আগ্রহী. আমার জানা সমস্ত বাস্তবায়ন লুপ এবং অনুলিপি ব্যবহার করে। এটি জাভাস্ক্রিপ্ট অ্যারে কিভাবে কাজ করে। আপনি সহজেই প্রথম উপাদানটিকে সহজে সরাতে পারবেন না কারণ বাকী অ্যারেটি এখন 1 থেকে শুরু হয় (পজিশনে 0 উপাদানটি সরানো হয়েছে), যা আপনাকে ঠিক করতে হবে। আপনার অভ্যন্তরীণ বাস্তবায়ন যাই হোক না কেন আপনি যাদু করতে পারবেন না।
সেলে

আপনি যদি yourArray.map(n=>n).shift()এটি ব্যবহার করেন তবে আসলটি পরিবর্তন না করেই প্রথম আইটেমটি ফিরে আসবে ... এটি সর্বোত্তম উপায় কিনা তা আপনি জানেন না তবে আপনি। .. অন্যথায় আমি ব্যবহার করবyourArray[0]
মাইকেল জে। জয়েডেল

53

প্রথম উপাদানটি মোছা হয়ে গেলে সূচকের এলিমেন্টের অস্তিত্ব থাকতে পারে:

let a = ['a', 'b', 'c'];
delete a[0];

for (let i in a) {
  console.log(i + ' ' + a[i]);
}

JQuery ছাড়াই প্রথম উপাদানটি পাওয়ার আরও ভাল উপায়:

function first(p) {
  for (let i in p) return p[i];
}

console.log( first(['a', 'b', 'c']) );


1
a.entries () [0] এটি করা উচিত :)
এডসন মদিনা

1
এটি কারণ আপনি অ্যারের সাথে গণনার জন্য kind ধরণের ব্যবহার করা উচিত নয়, কারণ এটি বস্তুগুলি গণনা করছে এবং অ্যারে সদস্য নয়। পরিবর্তে লুপের জন্য একটি traditionalতিহ্যবাহী সহ সূচি ব্যবহার করুন।
ওসকার ডুভের্বন

একই ES6 পদ্ধতির (এছাড়াও সাংখ্যিক সূচকের ওপর নির্ভর নয়) এখানে: stackoverflow.com/a/56115413/7910454
leonheess

51

ES6 ডেস্ট্রাকচারিং ব্যবহার করে

let [first] = [1,2,3];

যা হিসাবে একই

let first = [1,2,3][0];

এটি যোগ করার জন্য এটি প্রাসঙ্গিক হতে পারে যে ড্রেস্ট্রাক্টিং কেবলমাত্র একটি বিকল্প যদি আপনার অ্যারে [0] সূচক দিয়ে শুরু হয়।
নির্জনতা

46

আপনি যদি পঠনযোগ্যতা সংরক্ষণ করতে চান তবে আপনি সর্বদা প্রথম ফাংশন যুক্ত করতে পারেন Array.protoype:

Array.prototype.first = function () {
    return this[0];
};

এর পরে আপনি সহজেই প্রথম উপাদানটি পুনরুদ্ধার করতে পারেন:

[1, 2, 3].first();
> 1

14
কোনও ভাল কারণে কোনওভাবে বেস ক্লাসের প্রোটোটাইপগুলির সাথে টিঙ্কার করা খুব খারাপ অভ্যাস হিসাবে বিবেচিত হয়।
দিমিত্রি মাতভীভ

11
এটা নির্বোধ, কিভাবে টাইপিং .first()করায় ভাল [0]?
jonschlinkert

10
@ জোনস্ক্লিংকার্ট কিছু ভাষায় সূচক রয়েছে যা শুরু হয় 1firstএক্ষেত্রে দ্ব্যর্থহীন।
বার্তেক বনচেউইচজ

6
কী [[] .প্রথম () ফিরে আসে?
ছড়া

1
আমার পরীক্ষায় এটি অপরিবর্তিত ফিরে আসে। আমি সিদ্ধান্ত নেওয়ার চেষ্টা করছি যে এটি আমার অপরিজ্ঞাতভাবে ফেরা উচিত if
ছড়া

33

আপনি কেবল ব্যবহার করতে পারেন find():

let first = array.find(Boolean);

অথবা যদি আপনি প্রথম উপাদান চান এমনকি যদি তা না হয় falsy :

let first = array.find(e => true);

অতিরিক্ত মাইল যাচ্ছে:

আপনি যদি পঠনযোগ্যতার বিষয়ে চিন্তা করেন তবে সংখ্যক ঘটনার উপর নির্ভর করতে না চান তবে আপনি এটি সংজ্ঞায়িত করে একটি first()ফাংশন যুক্ত করতে পারেন যা দিয়ে বিল্ট-ইন অ্যারে অবজেক্টটি প্রোটোটাইপটি সরাসরি সংশোধন করার ক্ষতিগুলি সরাসরি ( এখানে ব্যাখ্যা করা হয়েছে ) প্রশমিত করতে পারে ।Array.protoypeObject​.define​Property()

পারফরম্যান্সটি বেশ ভাল ( find()প্রথম উপাদানটির পরে থামবে) তবে এটি নিখুঁত বা সর্বজনীনভাবে অ্যাক্সেসযোগ্য নয় (কেবলমাত্র ES6)। আরও ব্যাকগ্রাউন্ডের জন্য @ স্লেইস উত্তর পড়ুন

Object.defineProperty(Array.prototype, 'first', {
  value() {
    return this.find(e => true);     // or this.find(Boolean)
  }
});

তারপরে আপনি করতে পারেন এমন প্রথম উপাদানটি পুনরুদ্ধার করতে:

let array = ['a', 'b', 'c'];
array.first();

> 'a'

এটিকে কর্মে দেখতে স্নিপেট:

Object.defineProperty(Array.prototype, 'first', {
  value() {
    return this.find(Boolean);
  }
});

console.log( ['a', 'b', 'c'].first() );


3
এটি সেরা এবং সর্বশেষতম উত্তর। আমি এখানে এখানে একই পোস্ট করতে যাচ্ছিলাম, তবে আমি আপনার এর পরে দেখেছি :)
Kostanos

এবং যদি ভাষার কোনও ভবিষ্যতের সংস্করণে তারা যুক্ত করে () আবিষ্কার করবে তবে কী হবে? :-) উপরের স্নিপেটটি কি এটি ভেঙে দেবে না?
বোগদান

@Bogdan আপনি কি বোঝাতে চেয়েছেন যখন তারা যোগ হবেfind() ? find()দীর্ঘকাল ভাষা অংশ ছিল। উপরের স্নিপেট কাজ করার কারণ এটি।
নির্জনতা

ওহ। দুঃখিত কিছুটা ক্লান্তি খুব বেশি ঘুমোেনি আমি প্রথমে উল্লেখ করছি।
বোগদান

@ বোগদান এটি এখনও পুরোপুরি ঠিকঠাক কাজ করবে তবে first()ভাষার সম্ভাব্য ভবিষ্যতের উপরের
লিখন

18

যদি আপনার অ্যারেটি সূচক শূন্য থেকে পপুলেট করার গ্যারান্টিযুক্ত না হয় তবে আপনি ব্যবহার করতে পারেন Array.prototype.find():

var elements = []
elements[1] = 'foo'
elements[2] = 'bar'

var first = function(element) { return !!element }    
var gotcha = elements.find(first)

console.log(a[0]) // undefined
console.log(gotcha) // 'foo'

3
এটি সত্যই উচ্চতর ভোট দেওয়া উচিত। এটি সর্বাধিক সংক্ষিপ্ত সমাধান আমি দেখতে পাচ্ছি যে ভ্যানিলা জেএস ব্যবহার করে এবং বিরল অ্যারেগুলির অ্যাকাউন্টগুলি।
ডমিনিক পি


1
আমি !!elementএটি ব্যবহারের বিরুদ্ধে পরামর্শ দেব কারণ এটি মিথ্যা মানগুলি এড়িয়ে যাবে। আমি find()এই পদ্ধতিতে ব্যবহারের পরামর্শ দেব :sparse.find((_, index, array) => index in array);
ভিক্টর ওয়েলিং

: এখানে falsy মান খারিজ ছাড়া একই পদ্ধতির stackoverflow.com/a/56115413/7910454
leonheess

13
array.find(e => !!e);  // return the first element 

যেহেতু "সন্ধান করুন" ফিল্টারটির সাথে !!eমেলে এমন প্রথম উপাদানটি ফেরত দেয় & যে কোনও উপাদানটির সাথে মেলে।

উল্লেখ্য এটি কেবলমাত্র কাজ করে যখন প্রথম উপাদান একটি "Falsy" নয়: null, false, NaN, "", 0,undefined


1
আপনার অবস্থা অন্য যে কোন সত্যবাদী উপাদানের সাথে মেলে, যেমন <কড> কনস্ট উদাহরণ = [নাল, এনএন, 0, অপরিজ্ঞাত, {}, 3, 'ক']; const firstTruthyElement = example.find (e => !! e); // 5 ম উপাদানটি নির্ধারণ করে, প্রথমটি অসম্পূর্ণ: {} </code>
PDA

ধরার জন্য @ পিডিএ ধন্যবাদ। বিটিডাব্লু, খালি স্ট্রিংটিকেও জঘন্য বলে বিবেচনা করা হয়
আবদেন্নর TOUMI

3
এটি দুর্দান্ত এবং টাইপস্ক্রিপ্টে দুর্দান্ত কাজ করে। সরলকরণ সম্পর্কে কি array.find(() => true);? এটি আপনাকে [false].find(() => true)পাশাপাশি করতে দেয় ।
সাইমন ওয়ার্তা

@ সিমোনওয়ার্তা অবশ্যই .find(value => true)প্রত্যাশার মতোই কাজ করছে… তবে সত্যি বলতে যদি আপনি একটি ক্লিনার কোড চান এবং টাইপ স্ক্রিপ্টে টাইপিং রাখতে চান তবে ডেস্ট্রাকচারিং ব্যবহার করুন ।
ফ্ল্যাভিয়ান ভোলকেন

দেখুন এই উত্তর falsy উপাদানের উপেক্ষা এর ফাঁদ ছাড়া ঠিক একই ভাবে জন্য
leonheess


8

আপনি কেবলমাত্র আন্ডারস্কোর.জেএস ব্যবহার করতে পারলে ( http://underscorejs.org/ ) আপনি এটি করতে পারেন:

_.first(your_array);

7

আমি জানি যে লোকেরা অন্য ভাষা থেকে জাভাস্ক্রিপ্টে আসে, head()বা এর মতো কিছু খুঁজছেfirst() অ্যারের প্রথম উপাদানটি পায় তবে আপনি কীভাবে এটি করতে পারেন?

ভাবুন আপনার নীচে অ্যারে রয়েছে:

const arr = [1, 2, 3, 4, 5];

জাভাস্ক্রিপ্টে, আপনি সহজভাবে এটি করতে পারেন:

const first = arr[0];

বা একটি পরিষ্কার, নতুন উপায় হ'ল:

const [first] = arr;

তবে আপনি সহজেই একটি ফাংশন লিখতে পারেন ...

function first(arr) {
   if(!Array.isArray(arr)) return;
   return arr[0];
}

আন্ডারস্কোর ব্যবহার করা হলে, আপনি যা খুঁজছেন একই কাজ করছে এমন ফাংশনগুলির তালিকা রয়েছে:

_.first 

_.head

_.take

6

পদ্ধতি যা অ্যারেগুলির সাথে কাজ করে এবং এটি বস্তুর সাথে কাজ করে সাথেও খুব কার্যকরভাবে করে (সাবধান, অবজেক্টগুলির গ্যারান্টিযুক্ত অর্ডার নেই!)।

আমি এই পদ্ধতিটি সর্বাধিক পছন্দ করি কারণ আসল অ্যারেটি সংশোধিত হয় না।

// In case of array
var arr = [];
arr[3] = 'first';
arr[7] = 'last';
var firstElement;
for(var i in arr){
    firstElement = arr[i];
    break;
}
console.log(firstElement);  // "first"

// In case of object
var obj = {
    first: 'first',
    last: 'last',
};

var firstElement;

for(var i in obj){
    firstElement = obj[i];
    break;
}

console.log(firstElement) // First;

5

ES2015 এবং তারপরে, অ্যারে ডেস্ট্রাকচারিং ব্যবহার করে:

const arr = [42, 555, 666, 777]
const [first] = arr
console.log(first)


যে একই উত্তর stackoverflow.com/a/48761812/7910454 পরে কিন্তু কয়েক মাস
leonheess

4

কেবল সত্যবাদী উপাদানগুলির সাথে সম্পর্কিত তাদের জন্য আরেকটি

ary.find(Boolean);

4

ফিল্টার ব্যবহার করে একটি অ্যারেতে প্রথম উপাদানটি সন্ধান করুন:

টাইপস্ক্রিপ্টে:

function first<T>(arr: T[], filter: (v: T) => boolean): T {
    let result: T;
    return arr.some(v => { result = v; return filter(v); }) ? result : undefined;
}

সরল জাভাস্ক্রিপ্টে:

function first(arr, filter) {
    var result;
    return arr.some(function (v) { result = v; return filter(v); }) ? result : undefined;
}

এবং একইভাবে, সূচিপত্র:

টাইপস্ক্রিপ্টে:

function indexOf<T>(arr: T[], filter: (v: T) => boolean): number {
    let result: number;
    return arr.some((v, i) => { result = i; return filter(v); }) ? result : undefined;
}

সরল জাভাস্ক্রিপ্টে:

function indexOf(arr, filter) {
    var result;
    return arr.some(function (v, i) { result = i; return filter(v); }) ? result : undefined;
}

3

যখন একাধিক ম্যাচ হয়, JQuery এর প্রথম ফার্স্ট () প্রথম ডিওএম উপাদান আনার জন্য ব্যবহৃত হয় যা jquery এ দেওয়া সিএসএস নির্বাচকের সাথে মেলে।

জাভাস্ক্রিপ্ট অ্যারে পরিচালনা করতে আপনার jQuery দরকার নেই।


3

আপনার অ্যারে শূন্য হতে পারে তার জন্য অ্যাকাউন্ট না কেন?

var ary = ['first', 'second', 'third', 'fourth', 'fifth'];
first = (array) => array.length ? array[0] : 'no items';
first(ary)
// output: first

var ary = [];
first(ary)
// output: no items

3

শুধু ব্যবহার ary.slice(0,1).pop();

ভিতরে

var ary = ['first', 'second', 'third', 'fourth', 'fifth'];

console.log("1º "+ary.slice(0,1).pop());
console.log("2º "+ary.slice(0,2).pop());
console.log("3º "+ary.slice(0,3).pop());
console.log("4º "+ary.slice(0,4).pop());
console.log("5º "+ary.slice(0,5).pop());
console.log("Last "+ary.slice(-1).pop());

array.slice (শুরু, শেষ) .pop ();


কেন এবং না ary[0]?
নাথানফ্র্যাঙ্ক


1

জাভাস্ক্রিপ্টে অক্ষর বিভক্ত করতে এটি ব্যবহার করুন।

var str = "boy, girl, dog, cat";
var arr = str.split(",");
var fst = arr.splice(0,1).join("");
var rest = arr.join(",");

1

পূর্ববর্তী উদাহরণগুলি ভাল কাজ করে যখন অ্যারে সূচকটি শূন্য থেকে শুরু হয়। থোম্যাক্সের উত্তর শূন্য থেকে শুরু হওয়া সূচকের উপর নির্ভর করে না, তবে নির্ভর Array.prototype.findকরেছিল যে আমার অ্যাক্সেস নেই। নীচের সমাধানটি jQuery $ .Ech ব্যবহার করে আমার ক্ষেত্রে ভাল কাজ করেছে।

let haystack = {100: 'first', 150: 'second'},
    found = null;

$.each(haystack, function( index, value ) {
    found = value;  // Save the first array element for later.
    return false;  // Immediately stop the $.each loop after the first array element.
});

console.log(found); // Prints 'first'.

1

আপনি এটি এত সহজে লোড্যাশের মাধ্যমে করতে _.headপারেন।

var arr = ['first', 'second', 'third', 'fourth', 'fifth'];
console.log(_.head(arr));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>


2
এটা আক্ষরিক করে arr[0]যেমন আপনি দেখতে পারেন এখানে যার কারণে আমি দৃঢ়ভাবে যেমন একটি ছোট কাজের জন্য lodash মত একটি রাক্ষুসে লাইব্রেরি ব্যবহার নিরুত্সাহিত।
নির্জনতা

1

var ary = ['first', 'second', 'third', 'fourth', 'fifth'];
alert(Object.values(ary)[0]);


এটি ভ্যানিলা জেএস, কোনও জিকিউরি, কোনও লিবিস, কিছু নেই ..: পি..আইটি কাজ করবে যদি অ্যারে সূচকটি শূন্য থেকে শুরু না হয়, এটি বিশ্ব শেষ না হলে কাজ করবে ....
মেরাক মেরে

0

@ নিকোলিউক আপনার স্প্লাইস সহ উপাদানগুলি সরিয়ে ফেলা উচিত, এটি আপনার অ্যারের পিছনে স্থানান্তরিত করবে। তাই:

var a=['a','b','c'];
a.splice(0,1);
for(var i in a){console.log(i+' '+a[i]);}

2
এই উত্তরটি উপরের (নিকোলউক্স) উত্তরের একটি মন্তব্য, এবং মুছে ফেলা উচিত
লিনো

0

প্রথম অ্যারে উপাদানটি পেতে একটি প্রোটোটাইপ ঘোষণা করুন :

Array.prototype.first = function () {
   return this[0];
};

তারপরে এটি ব্যবহার করুন:

var array = [0, 1, 2, 3];
var first = array.first();
var _first = [0, 1, 2, 3].first();

বা সহজভাবে (:

first = array[0];

0

আপনি যদি অ্যারেতে কোনও ভিউ ফাংশন শৃঙ্খলাবদ্ধ হন

array.map(i => i+1).filter(i => i > 3)

এবং এই ফাংশনগুলির পরে প্রথম উপাদানটি চান যা আপনি কেবল একটি যুক্ত করতে পারেন .shift()এটি আসলটি পরিবর্তন করে না array, এটি তারপরে খুব সুন্দর উপায়array.map(i => i+1).filter(=> i > 3)[0]

আপনি আসল আপনি ব্যবহার করতে পারেন পরিবর্তন ছাড়া একটি অ্যারের প্রথম উপাদান চান array[0]বা array.map(n=>n).shift()(মানচিত্রে ছাড়া আপনি আসল পরিবর্তন করতে হবে। এই ক্ষেত্রে BTW আমি সুপারিশ করবে ..[0]সংস্করণ।


0
var ary = ['first', 'second', 'third', 'fourth', 'fifth'];

console.log(Object.keys(ary)[0]);

যে কোনও অবজেক্ট অ্যারে ( req) তৈরি করুন , তারপরে Object.keys(req)[0]অবজেক্ট অ্যারেতে প্রথম কীটি বেছে নেওয়ার জন্য কেবল করুন ।


2
যদিও এই কোড স্নিপেট একটি ব্যাখ্যা সহ প্রশ্নটি সমাধান করতে পারে, সত্যিই আপনার পোস্টের মান উন্নত করতে সহায়তা করে। মনে রাখবেন যে আপনি ভবিষ্যতে পাঠকদের জন্য প্রশ্নের উত্তর দিচ্ছেন, এবং সেই লোকেরা আপনার কোড পরামর্শের কারণগুলি জানেন না।
DimaSan

0

@ থোম্যাক্সের উত্তরটি বেশ ভাল তবে অ্যারেতে প্রথম উপাদানটি মিথ্যা বা মিথ্যা-ওয়াই (0, খালি স্ট্রিং ইত্যাদি) হলে ব্যর্থ হবে। অপরিজ্ঞাত ব্যতীত অন্য যে কোনও কিছুর জন্য ঠিক সত্য হওয়া ভাল:

const arr = [];
arr[1] = '';
arr[2] = 'foo';

const first = arr.find((v) => { return (typeof v !== 'undefined'); });
console.log(first); // ''

-1

ES6 সহজ:

let a = []
a[7] = 'A'
a[10] = 'B'

let firstValue = a.find(v => v)
let firstIndex = a.findIndex(v => v)

1
নাহ ... এটি প্রথম সংজ্ঞায়িত মানটি ফিরিয়ে দেবে। প্রথমটি যদি নাল, অপরিজ্ঞাত, মিথ্যা, 0 বা একটি খালি স্ট্রিং হয় তবে সেটিকে এড়িয়ে দেওয়া হবে। চেষ্টা করুন:[false, 0, null, undefined, '', 'last'].find(v => v)
ফ্ল্যাভিয়ান ভলকেন

ভাল কথা, আমার সমাধান কেবল সংজ্ঞায়িত মানগুলির সাথে অ্যারের জন্যই কাজ করে।
জান জারিক

1
তাহলে মান ব্যবহার করে ফিল্টার করবেন কেন? a.find(value => true)কোন মান বরখাস্ত করবে না। তবুও, আমি প্রথম আইটেমটি পেতে সন্ধানটি ব্যবহার করার পরামর্শ দিই না।
ফ্ল্যাভিয়ান ভোলকেন

1
@ মিক্সটি 4 পিই সত্য প্রত্যাবর্তন করেছে (আপনার উত্তর হিসাবে) ঠিক আছে কারণ এটি প্রথম উপাদানটি বন্ধ হয়ে যাবে, এখানে এটি উপাদানটি নিজেই ফেরত দেয় ... যা এটিকে মিথ্যা হিসাবে গণ্য করা হলে অব্যাহত থাকবে
ফ্ল্যাভিয়ান ভোলকেন

1
@ MiXT4PE "সন্ধান করুন" ব্যবহার করে ধীর, আরও জটিল এবং কম মার্জিত। আমি আরও সন্দেহ করি যে এই অপারেশনটি রিফ্যাক্টর করতে সক্ষম কোনও স্মার্ট সম্পাদক রয়েছেন। ডেস্ট্রাকচারিং ব্যবহার করা অনেক বেশি দক্ষ, ভাষা দ্বারা বোঝা (যাতে আপনি রিফ্যাক্টর করতে পারেন), টাইপটি সংকলক (টিএসের ক্ষেত্রে) দ্বারা বোঝা যায় এবং খুব সম্ভবত দ্রুততম সমাধানটি পাওয়া যায়।
ফ্লাভিয়েন ভলকেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.