جاوا اسکریپت آرائی

JavaScript 数组用于在单一变量中存储多个值。

مثال

var cars = ["Saab", "Volvo", "BMW"];

آپ خود چربی بچائیں

什么是数组?

数组是一种特殊的变量,它能够一次存放一个以上的值。

如果您有一个项目清单(例如,汽车品牌列表),在单个变量中存储汽车品牌应该是这样的:

var car1 = "Saab";
var car2 = "Volvo";
var car3 = "BMW"; 

不过,假如您希望遍历所有汽车并找到一个特定的值?假如不是三个汽车品牌而是三百个呢?

解决方法就是数组!

数组可以用一个单一的名称存放很多值,并且还可以通过引用索引号来访问这些值。

创建数组

使用数组文本是创建 JavaScript 数组最简单的方法。

语法:

var array-name = [item1, item2, ...];

مثال

var cars = ["Saab", "Volvo", "BMW"];

آپ خود چربی بچائیں

空格和折行并不重要。声明可横跨多行:

مثال

var cars = [
    "Saab",
    "Volvo",
    "BMW"

آپ خود چربی بچائیں

آخری عنصر کے بعد کاما کو لکھنا نہیں چاہئیے (مثلاً "BMW",)

اس میں کسی بھی بروسر میں کھلنے کی مشکل ممکن ہو سکتی ہے

استعمال کرکے JavaScript کی کلیدی الفاظ

ایک اور مثال، جو بائیکن بناکر اس کو قیمتی دینا ہوگا:

مثال

var cars = new Array("Saab", "Volvo", "BMW");

آپ خود چربی بچائیں

مذکورہ دو مثال کا اثر ایک ساتھی ہیں، لہذا استعمال نہ کریں new Array().

کم پیچیدگی، خواندنی اور کارکردگی کی رفتار کی وجہ سے، پہلین طریقے کو استعمال کریں (بائیکن لکچر میتھد)

بائیکن عنصر کو منسوب کرنا

ہم بائیکن عنصر کو منسوب کرنے کے لئے استعمال کرتے ہیںاشاریہ نمبر (انداز نمبر)کسی بائیکن عنصر کو منسوب کرنے کے لئے استعمال کی جاتی ہیں。

یہ سطور cars میں پہلے عنصر کی قیمتی لیکر آتا ہے:

var name = cars[0];

یہ سطور cars میں پہلے عنصر کو تبدیل کردہ ہیں:

cars[0] = "Opel";

مثال

var cars = ["Saab", "Volvo", "BMW"];
document.getElementById("demo").innerHTML = cars[0]; 

آپ خود چربی بچائیں

[0] جو بائیکن میں پہلے عنصر کا ہوگا، [1] دوسرے عنصر کا ہوگا۔ بائیکن کا اشاریہ 0 سے شروع ہوتا ہے。

مجملات کی تبدیل

یہ سطور cars میں پہلے عنصر کا قیمتی تبدیل کردہ ہیں:

cars[0] = "Opel";

مثال

var cars = ["Saab", "Volvo", "BMW"];
cars[0] = "Opel";
document.getElementById("demo").innerHTML = cars[0];

آپ خود چربی بچائیں

پورے تائیلی تک رسائی حاصل کریں

JavaScript کے ذریعے، آپ تائیلی کے نام کو استعمال کرکے پورے تائیلی تک رسائی حاصل کرسکتے ہیں:

مثال

var cars = ["Saab", "Volvo", "BMW"];
document.getElementById("demo").innerHTML = cars; 

آپ خود چربی بچائیں

تائیلی اشیاء کی شکل میں ہوتی ہیں

تائیلی ایک خصوصی نوعیت کی اشیاء ہوتی ہیں، JavaScript میں تائیلی کا استعمال typeof آپریٹر تائیلی کو "object" کی شکل میں بازگشت دیتا ہے。

لیکن، JavaScript کی تائیلی کو بہترین طور پر تائیلی کی شکل میں بیان کیا جاسکتا ہے。

تائیلی استعمال میںاعدادسے اس کے "عناصر" تک رسائی حاصل کریں، اس مثال میں،person[0] Bill: return

تائیلی:

var person = ["Bill", "Gates", 62];

آپ خود چربی بچائیں

اشیاء استعمال میںنامسے اس کے "اعضو" تک رسائی حاصل کریں، اس مثال میں،person.firstName Bill: return

اشیاء:

var person = {firstName:"Bill", lastName:"Gates", age:19};

آپ خود چربی بچائیں

تائیلی عناصر اشیاء کی شکل میں ہوتی ہیں

JavaScript کی متغیر اشیاء کی شکل میں ہوتی ہیں، تائیلی ایک خصوصی نوعیت کی اشیاء ہوتی ہے。

اس لئے آپ ایک ہی تائیلی میں مختلف اقسام کی متغیروں کو محفوظ کرسکتے ہیں。

آپ تائیلی میں اشیاء محفوظ کرسکتے ہیں، آپ تائیلی میں فونکشن محفوظ کرسکتے ہیں، آپ تائیلی میں تائیلی محفوظ کرسکتے ہیں:

myArray[0] = Date.now;
myArray[1] = myFunction;
myArray[2] = myCars;

تائیلی کی صفتوں اور متد

JavaScript کی تائیلی کی حقیقی طاقت تائیلی کی صفتوں اور متد میں پوشیدہ ہوتی ہے:

مثال

var x = cars.length;   // length صفت عناصر کی تعداد بازگشت دیتا ہے
var y = cars.sort();   // sort() متد تائیلی کو ترتیب دیتا ہے

آپ کسی بھی بعد میں تائیلی کے متد سیکھیں گے。

length صفت

length صفت تائیلی کی لمبائی بازگشت دیتا ہے (تائیلی عناصر کی تعداد).

مثال

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.length;                       // fruits کی لمبائی 4 ہے

آپ خود چربی بچائیں

length صفت ہمیشہ اعلیٰ ترین تائیلی اشاریہ سے زیادہ ہوتی ہیں (نشان موقف).

پہلی تائیلی عناصر تک رسائی حاصل کریں

مثال

fruits = ["Banana", "Orange", "Apple", "Mango"];
var first = fruits[0];

آپ خود چربی بچائیں

آخری تائیلی عناصر تک رسائی حاصل کریں

مثال

fruits = ["Banana", "Orange", "Apple", "Mango"];
var last = fruits[fruits.length - 1];

آپ خود چربی بچائیں

تائیلی کے عناصر کا پیمانہ لائیں

مجرب سیکل تائیلی کا سب سست طریق یہ ہے کہ آپ "چرخه:"چرخه:"

مثال

var fruits, text, fLen, i;
fruits = ["Banana", "Orange", "Apple", "Mango"];
fLen = fruits.length;
text = "<ul>";
for (i = 0; i < fLen; i++) {
     text += "<li>" + fruits[i] + "</li>";
} 

آپ خود چربی بچائیں

شما همچنین می‌توانید از Array.foreach() توابع:

مثال

var fruits, text;
fruits = ["Banana", "Orange", "Apple", "Mango"];
text = "<ul>";
fruits.forEach(myFunction);
text += "</ul>";
function myFunction(value) {
  text += "<li>" + value + "</li>";
}

آپ خود چربی بچائیں

افزودن عنصر آرایه

بهترین روش برای اضافه کردن عنصر جدید به آرایه استفاده از push() روش:

مثال

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Lemon");                // یک عنصر جدید (Lemon) به fruits اضافه می‌شود

آپ خود چربی بچائیں

همچنین می‌توانید از length ویژگی برای اضافه کردن عنصر جدید به آرایه:

مثال

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[fruits.length] = "Lemon";     // یک عنصر جدید (Lemon) به fruits اضافه می‌شود

آپ خود چربی بچائیں

اخطار!

افزودن عنصر با بالاترین شماره ممکن می‌تواند در آرایه سوراخ‌های تعریف نشده ایجاد کند:

مثال

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[6] = "Lemon";                 // یک عنصر جدید (Lemon) به fruits اضافه می‌شود

آپ خود چربی بچائیں

آرایه مرتبط

عناصر بسیاری از برنامه‌نویسی از آرایه‌های نامگذاری شده پشتیبانی می‌کنند.

آرایه‌هایی که شماره‌های نامگذاری شده دارند به عنوان آرایه‌های مرتبط (یا توزیع شده) شناخته می‌شوند.

جاوااسکریپت پشتیبانی نمی‌شودشماره‌های نامگذاری شده استفاده شوند.

در جاوااسکریپت، آرایه‌ها فقط می‌توانند باشمارنده‌های عددی.

مثال

var person = [];
person[0] = "Bill";
person[1] = "Gates";
person[2] = 62;
var x = person.length;          // person.length 3 برمی‌گردد
var y = person[0];              // person[0] به "Bill" برمی‌گردد

آپ خود چربی بچائیں

اخطار!

اگر شما از شماره‌های نامگذاری شده استفاده کنید، جاوااسکریپت آرایه را به یک شیء استاندارد تبدیل می‌کند.

بعد از آن، تمام روش‌ها و ویژگی‌های آرایه‌ها نتایج نادرستی تولید می‌کنند.

مثال:

var person = [];
person["firstName"] = "Bill";
person["lastName"] = "Gates";
person["age"] = 62;
var x = person.length;         // person.length 0 برمی‌گردد
var y = person[0];              // person[0] undefined برمی‌گردد

آپ خود چربی بچائیں

تفاوت بین آرایه و شیء

در JavaScript،آرایهاستفاده می‌شودشمارنده‌های عددی.

در JavaScript،اجساماستفاده می‌شودشمارنده‌های نام‌گذاری شده.

آرایه‌ها نوع خاصی از شیءها هستند که دارای شمارنده‌های عددی هستند.

چه زمانی باید از آرایه استفاده کرد و چه زمانی از شیء استفاده کرد؟

  • JavaScript آرایه‌های مرتبط را پشتیبانی نمی‌کند
  • اگر می‌خواهید نام عناصرزبان (متنی)باید ازاجسام.
  • اگر می‌خواهید نام عناصراعدادباید ازآرایه.

از new Array() خودداری کنید

نیازی به استفاده از سازنده آرایه‌های داخلی JavaScript نیست new Array().

از [] به جای آن!

دو عبارت متفاوت زیر یک آرایه جدید خالی به نام points ایجاد می‌کنند:

var points = new Array();         // بدتر
var points = [];                  // بهتر

دو عبارت متفاوت زیر یک آرایه جدید با شش عدد را ایجاد می‌کنند:

var points = new Array(40, 100, 1, 5, 25, 10); // بدتر
var points = [40, 100, 1, 5, 25, 10];          // بهتر

آپ خود چربی بچائیں

new کلمات کلیدی تنها باعث پیچیدگی کد می‌شوند. همچنین ممکن است نتایج غیرمنتظره‌ای ایجاد کنند:

var points = new Array(40, 100);  // آرایه‌ای با دو عنصر (40 و 100) ایجاد می‌شود

اگر یکی از عناصر را حذف کنیم چه اتفاقی می‌افتد؟

var points = new Array(40);       // آرایه‌ای با 40 عنصر تعریف نشده ایجاد می‌شود!!!

آپ خود چربی بچائیں

چگونه آرایه را شناسایی کنم

مشکل رایج این است: چگونه می‌توانم بفهمم که یک متغیر آرایه است یا خیر؟

مشکل در محاسبات JavaScript است typeof برمی‌گردد "اجسام":"

var fruits = ["Banana", "Orange", "Apple", "Mango"];
typeof fruits;             // برمی‌گردد object

آپ خود چربی بچائیں

نوع محاسباتی "اجسام" برمی‌گردد، زیرا آرایه‌های JavaScript جزء اجسام هستند.

حل کی سوال 1:

اس مسئلہ کو حل کرنے کے لئے ECMAScript 5 نئی طریق کا تعارف کیا گیا Array.isArray():

Array.isArray(fruits);     // برگشت صحیح

آپ خود چربی بچائیں

اس سکیم کا مسئلہ یہ ہے کہ ECMAScript 5 پرانی براؤزر کو پشتیبند نہیں کیا جاتا.

حل کی سوال 2:

اپنی خود کی isArray() یہ فنکشن اس سوال کو حل کرتا ہے:

function isArray(x) {
    return x.constructor.toString().indexOf("Array") > -1;
}

آپ خود چربی بچائیں

اگر پارامتر آرائی کا ہو تو، بالا فنکشن ہمیشہ برگشت صحیح دے گا。

یا اور دقیق تر توضیح دیکھیں: اگر اشیاء کا اصل "Array" لفظ شامل ہو تو برگشت صحیح ہوگا。

حل کی سوال 3:

اگر اشیاء دیے گئے کنسٹرکٹر سے قائم ہوئی ہوئی تو instanceof عملگر برگشت صحیح:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits instanceof Array     // برگشت صحیح

آپ خود چربی بچائیں