[5,6,8,7] জাভাস্ক্রিপ্টে [1,2] = 8 কেন?


278

আমি এই উদ্রেকের চারপাশে আমার মন গুটিয়ে রাখতে পারি না।

[1,2,3,4,5,6][1,2,3]; // 4
[1,2,3,4,5,6][1,2]; // 3

আমি জানি [1,2,3] + [1,2] = "1,2,31,2", তবে কোন ধরণের বা অপারেশন করা হচ্ছে তা আমি খুঁজে পাই না।

উত্তর:


387
[1,2,3,4,5,6][1,2,3];
      ^         ^
      |         |
    array       +  array subscript access operation,
                    where index is `1,2,3`,
                    which is an expression that evaluates to `3`.

দ্বিতীয়টি [...]অ্যারে হতে পারে না, সুতরাং এটি অ্যারে সাবস্ক্রিপ্ট অপারেশন। এবং সাবস্ক্রিপ্ট অপারেশনের বিষয়বস্তু অপারেন্ডগুলির তালিকাবদ্ধ তালিকা নয়, তবে একটি একক অভিব্যক্তি।

কমা অপারেটর সম্পর্কে এখানে আরও পড়ুন ।


7
সঠিক .. সর্বশেষ সূচক ব্যবহৃত হয়েছে .. আরও উদাহরণ: [1,2,3,4,5,6] [1,2,3] === [1,2,3,4,5,6] [3] ; [1,1,1,5,1,1] [3] === [1,1,1,5,1,1] [1,2,3]; এই ভাবে [1,1,1,5,1,1] [3] == 5
মাস্তাক

কমা অপারেটর সম্পর্কে আরও পড়ুন এখানে একটি বিভ্রান্তিমূলক বক্তব্য , লিঙ্কযুক্ত উইকি এন্ট্রিটি সি এবং সি ++ প্রসঙ্গে কমা অপারেটর সম্পর্কে কথা বলে এবং এখানে আপনার জাভাস্ক্রিপ্ট রয়েছে !!
নওয়াজ

108

কারণ (1,2) == 2। আপনি কমা অপারেটর জুড়ে হোঁচট খেয়েছেন (বা এখানে সহজ ব্যাখ্যা )।

কমা ঘোষণার তালিকায়, প্যারামিটারের তালিকা, অবজেক্ট বা অ্যারে আক্ষরিক উপস্থিত না হওয়া পর্যন্ত তারা অন্য বাইনারি অপারেটরের মতো কাজ করে। x, yমূল্যায়ন করে x, তারপরে মূল্যায়ন করে yএবং ফলন করে যে ফলস্বরূপ।


21
[1,2,3,4,5,6][1,2,3];

এখানে দ্বিতীয় বাক্স অর্থাত্ শেষ আইটেমটি [1,2,3]হয়ে যায় [3]তাই ফলাফলটি 4 হবে উদাহরণস্বরূপ আপনি [1,2,3,4,5,6]যদি একটি অ্যারে রাখেন

var arr=[1,2,3,4,5,6];

arr[3]; // as [1,2,3] in the place of index is equal to [3]

একভাবে

*var arr2=[1,2,3,4,5,6];

 // arr[1,2] or arr[2] will give 3*

তবে আপনি যখন এর মাঝে একটি + অপারেটর রাখেন তখন দ্বিতীয় বর্গাকার বন্ধনী সূচকটি উল্লেখ করার জন্য নয়। এটি বরং অন্য অ্যারে তাই আপনি পান

[1,2,3] + [1,2] = 1,2,31,2

অর্থাত

var arr_1=[1,2,3];

var arr_2=[1,2];

arr_1 + arr_2; // i.e.  1,2,31,2

মূলত প্রথম ক্ষেত্রে এটি অ্যারের সূচক হিসাবে ব্যবহৃত হয় এবং দ্বিতীয় ক্ষেত্রে এটি নিজেই অ্যারে হয়।

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