জাভাস্ক্রিপ্ট অ্যারে বনাম বন্ধনীগুলি


111

নিম্নলিখিত অ্যারের সংজ্ঞাগুলির মধ্যে পার্থক্য কী।

var myArray = [];
var myArray = {};
var myArray = new Array();

উত্তর:


137

প্রথম এবং তৃতীয় সমতুল্য এবং একটি নতুন অ্যারে তৈরি করুন। দ্বিতীয়টি অ্যারে নয়, একটি নতুন ফাঁকা বস্তু তৈরি করে।

var myArray = []; //create a new array
var myArray = {}; //creates **a new empty object**
var myArray = new Array(); //create a new array

আমরা কীভাবে বস্তুর মানগুলি অ্যাক্সেস করব do
গোলাপী

3
বন্ধনী বা বিন্দু চিহ্নিতকরণ সহ: myObject["someValue"]বা myObject.someValue{}myObject.someValue = "hello!"
উইলের

4
এই বিশেষ ক্ষেত্রে 1 এবং 3 এর একই প্রভাব রয়েছে। কখনও কখনও, তবে তারা অন্যরকম আচরণ করে। উদাহরণস্বরূপ, যদি var a = new Array(5)এবং var b = [5]তারপর, ab(যেহেতু a.length= 5 যখন b.length= 1, a[0]হয় undefinedযখন b[0]5, এবং তাই।)
হুনান Rostomyan

হয় var a;এবং var a = {};একই?
আরএনএ

31

var myObject = {}; var এর সমতুল্য myObject = new Object();

সুতরাং, দ্বিতীয় উদাহরণটি Arrayএকটি জেনারেল নয় Object

এটি Arrayএকটি শ্রেণীর মতো এবং বিভ্রান্ত হয়ে উঠতে পারে Object- আরও স্পষ্টভাবে Arrayএর একটি সাব-ক্লাস Object। সুতরাং, বৃহত্তর দ্বারা, Objectশব্দার্থবিজ্ঞানের জন্য এটি প্রযোজ্য Array:

var o = [];
o.push('element1');
o.push('element2');
o['property1'] = 'property value';  // define a custom property.
console.log(o.property1);
console.log(o.length);  // Outputs '2' as we've only push()'ed two elements onto the Array

2
যেখানে সম্পত্তি 1 সঞ্চিত আছে। এটি কি অ্যারেতে নেই
গোলাপী

9
@ পিংকি: এটি এখন বিভ্রান্তিকর হয়ে উঠছে: অ্যারেগুলিও বস্তুগত । করে o['property1'] = 'property value', আপনি আসলে অ্যারেতে কোনও উপাদান যোগ করছেন না, তবে অ্যারে অবজেক্টের একটি বৈশিষ্ট্য নির্ধারণ করছেন । বিভ্রান্ত? আমি তোমাকে বলেছি;) জাভাস্ক্রিপ্টে মূলত সবকিছুই একটি বস্তু। অন্যান্য বস্তু, যেমন Array, RegExp... আরও কার্যকারিতা সহ বেসিক অবজেক্টটি প্রসারিত করে। একটি সরল, খালি বস্তু এটি কোঁকড়া বন্ধনী দ্বারা তৈরি করা হয় plain_obj = {}
ফেলিক্স ক্লিং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.