آرایه ها به منظور ذخیره سازی مقادیر چندگانه در یک var یا متغیر ساده به کار می روند. اندیس آرایه ها از 0 شروع می شود. امروز میخواهیم در مورد توابع توکار مختص آرایه ها همچون push، pop، join و غیره مطالبی یاد بگیریم.
آرایه ها به شیوه های زیر ایجاد می شوند:
// an array of names var names = ["rj", "ricky", "alex"]; console.log(names); //calculating the length of array var len = names.length; console.log(len); //Another way to create array var arr = new Array(3); // declare an array "arr" of size 3 arr = [1,5,7]; // initialize elements of array //OR // declare and initialize in a single statement var arr1 = new Array(2,5,7); console.log("arr : " + arr); console.log("arr 1 : " + arr1);
خروجی کد فوق به شرح زیر است:
>node create-array.js [ 'rj', 'ricky', 'alex' ] 3 arr : 1,5,7 arr 1 : 2,5,7
به کمک این متد می توانید یک عنصر به انتهای یک آرایه اضافه کنید:
arr = ['a','e','i','o']; console.log(arr); arr.push('u'); console.log(arr);
این هم خروجی:
>node push.js [ 'a', 'e', 'i', 'o' ] [ 'a', 'e', 'i', 'o', 'u' ]
به کمک این متد، آخرین عنصر آرایه را حذف می کنیم:
arr = [ 5 , 5 , 8 , 7 , 6 ]; console.log(arr); arr.pop(); console.log(arr);
خروجی کد فوق:
>node pop.js [ 5, 5, 8, 7, 6 ] [ 5, 5, 8, 7 ]
به کمک متد unshift یک عنصر به ابتدای آرایه اضافه می کنیم:
arr = [ 5 , 5 , 8 , 7 , 6 ]; console.log(arr); arr.unshift(1); console.log(arr);
خروجی کد فوق:
>node unshift.js [ 5, 5, 8, 7, 6 ] [ 1, 5, 5, 8, 7, 6 ]
به کمک این متد، اولین عنصر آرایه حذف خواهد شد:
arr = ['b','a','e','i','o','u']; console.log(arr); arr.shift(); console.log(arr);
خروجی کد فوق:
>node shift.js [ 'b', 'a', 'e', 'i', 'o', 'u' ] [ 'a', 'e', 'i', 'o', 'u' ]
با این متد، ترتیب عناصر آرایه ها معکوس خواهد شد. طوری که عنصر آخر به جای اول و عنصر اول به جای آخر، عنصر ما قبل آخر به جای دوم و عنصر دوم به ماقبل آخر و الی آخر:
arr = ['b','e','a','o','p','n','r']; console.log(arr); arr.reverse(); console.log(arr);
خروجی کد فوق:
>node reverse.js [ 'b', 'e', 'a', 'o', 'p', 'n', 'r' ] [ 'r', 'n', 'p', 'o', 'a', 'e', 'b' ]
متد sort عناصر یک آرایه را به ترتیب صعودی مرتب می کند:
arr = ['b','e','a','o','p','n','r']; console.log(arr); arr.sort(); console.log(arr);
خروجی کد فوق:
>node sort.js [ 'b', 'e', 'a', 'o', 'p', 'n', 'r' ] [ 'a', 'b', 'e', 'n', 'o', 'p', 'r' ]
متد splice به دو منظور به کار می رود، یعنی هم به عنوان افزودن و تزریق عناصر به آرایه و هم برچیدن عناصر از آرایه. به کمک کدنویسی، هر روش توضیح داده خواهد شد.
1. افزودن عناصر به آرایه به کمک splice:
arr = ['b','e','a','o','p','n','r']; console.log(arr); arr.splice(2,2,'rj','nodejs'); console.log(arr);
خروجی کد فوق:
>node splice-add.js [ 'b', 'e', 'a', 'o', 'p', 'n', 'r' ] [ 'b', 'e', 'rj', 'nodejs', 'p', 'n', 'r' ]
2. حذف یا برچیدن عناصر به کمک splice:
arr = ['b','e','a','o','p','n','r']; console.log(arr); arr.splice(2,2); console.log(arr);
خروجی کد فوق:
>node splice-remove.js [ 'b', 'e', 'a', 'o', 'p', 'n', 'r' ] [ 'b', 'e', 'p', 'n', 'r' ]
متد concat() برای چسباندن دو آرایه به یکدیگر و به دست آوردن یک آرایه جدید بطوری که ترتیب عناصر آرایه جدید، از کنار هم چیدن عناصر آرایه دوم بعد از عناصر آرایه اول خواهد بود:
arr = ['tomatoes','pineapple']; arr2 = ['mango','peach','apple']; console.log(arr); console.log(arr2); var new_arr = arr.concat(arr2); console.log(new_arr);
خروجی کد فوق:
>node concat.js [ 'tomatoes', 'pineapple' ] [ 'mango', 'peach', 'apple' ] [ 'tomatoes', 'pineapple', 'mango', 'peach', 'apple' ]
متد indexOf عنصری را که عنوان آرگومان داده شده است، در آرایه جست و جو می کند و اندیس اولین وقوع آن را در آرایه بر می گرداند. اگر آرگومان در آرایه پیدا نشود، مقدار -1 بر می گرداند:
arr = [ 5 , 2 , 8 , 5 , 6 ]; console.log(arr); var pos = arr.indexOf(8); console.log("index of 8 is : " + pos); var pos1 = arr.indexOf(5); console.log("index of 5 is : " + pos1);
خروجی کد فوق:
>node indexOf.js [ 5, 2, 8, 5, 6 ] index of 8 is : 2 index of 5 is : 0
متد lastIndexOf() همانند indexOf() عمل می کند، با این تفاوت که اندیس آخرین تطابق را در آرایه برمی گرداند. همانند indexOf() اگر تطابقی پیدا نکند، 1- را برمی گرداند.
arr = [ 5 , 2 , 8 , 5 , 6 ]; console.log(arr); var pos = arr.lastIndexOf(5); console.log("Last index of 5 is : " + pos);
خروجی کد فوق:
>node lastIndexOf.js [ 5, 2, 8, 5, 6 ] Last index of 5 is : 3
متد join عناصر آرایه را به هم می چسباند و یک رشته به ما برمیگرداند. می توانیم یک جداساز دلخواه نیز بعنوان آرگومان بین عناصر ارسال کنیم. جداساز پیش فرض کاما است.
arr = [ 5 , 2 , 8 , 5 , 6 ]; arr1 = ['a','b','c','d']; console.log(arr); console.log(arr1); var str = arr.join(); var str1 = arr1.join(":"); console.log(str); console.log(str1);
خروجی کد فوق:
>node join.js [ 5, 2, 8, 5, 6 ] [ 'a', 'b', 'c', 'd' ] 5,2,8,5,6 a:b:c:d
متد slice قسمتی از یک آرایه را استخراج و بعنوان یک آرایه جدید بریده و برمی گرداند. این متد دو آرگومان می گیرد: ابتدا و انتها که اگر هر دو از قلم بیافتند، کل آرایه برش خواهد خورد. نحوه نگارش آن بصورت
slice(start, end) است.
نکته: این متد بر روی آرایه مبدا تغییری نخواهد داد.
arr = [ 5 , 2 , 8 , 5 , 6 ]; arr1 = ['a','b','c','d']; console.log(arr); console.log(arr1); var str = arr.slice(2,4); var str1 = arr1.slice(-2,-1); console.log(str); console.log(str1);
خروجی کد فوق:
>node slice.js [ 5, 2, 8, 5, 6 ] [ 'a', 'b', 'c', 'd' ] [ 8, 5 ] [ 'c' ]
متد every زمانی به کار می رود که ما بخواهیم بررسی کنیم آیا یک شرط برای تمام عناصر آرایه برقرار است یا خیر. اگر برقرار بود، true و الا false بر میگرداند:
arr = [2,4,6,8,10]; arr1 = [2,3,4,6,8]; function even(value){ if( (value % 2) == 0){ return true; }else{ return false; } } var out = arr.every(even); var out1 = arr1.every(even); console.log("Output of array 1 : " + out); console.log("Output of array 2 :" +out1);
خروجی کد فوق:
>node every.js Output of array 1 : true Output of array 2 :false
متد filter برای ایجاد یک آرایه جدید از آرایه فعلی، و پرکردن ان با عناصری که شرط خاصی برایشان برقرار است، به کار می رود. شرط معمولا به کمک یک تابع بیان می شود.
arr = [2,4,6,8,10]; arr1 = [2,3,4,6,8]; function even(value){ if( (value % 2) == 0){ return true; }else{ return false; } } var out = arr.filter(even); var out1 = arr1.filter(even); console.log("Output of array 1 : " + out); console.log("Output of array 2 :" + out1);
خروجی کد فوق:
>node filter.js Output of array 1 : 2,4,6,8,10 Output of array 2 : 2,4,6,8
متد find() اولین عنصر آرایه که شرطی را برقرار کند، برمی گرداند. اگر هیچ عنصری شرط را برقرار نکند، مقدار undefined برمیگرداند:
arr = [2,4,6,8,10]; arr1 = [2,3,4,7,8]; function odd(value){ if( (value % 2) == 1){ return true; }else{ return false; } } var out = arr.filter(odd); var out1 = arr1.filter(odd); console.log("Output of array 1 : " + out); console.log("Output of array 2 :" + out1);
خروجی کد فوق:
>node find.js Output of array 1 : Output of array 2 :3,7
متد forEach در آرایه ها، درواقع یک حلقه است که یک تابع را برای تک تک عناصر آرایه فراخوانی می کند:
var arr = [1, 2, 3 , 5 , 8]; arr.forEach(function(element) { console.log(element*2); });
خروجی کد فوق:
>node forEach.js 2 4 6 10 16
متد reduce برای تبدیل به یک مقدار ساده به کار می رود. این متد تابع فراهم شده را برای تک تک عناصر اجرا می کند و نتیجه را در یک انباشتگر ذخیره می کند.
نکته: این متد روی آرایه ای که مقداری ندارد، کار نمی کند.
arr = [ 5 , 5 , 8 , 7 , 6 ]; console.log(arr); function mul(value ,total){ total = value * total; return total; } var output = arr.reduce(mul); console.log("The product of the array is : " + output);
خروجی کد فوق:
>node reduce.js [ 5, 5, 8, 7, 6 ] The product of the array is : 8400
در این مقاله ما آرایه ها را بررسی کردیم، چگونه یک آرایه جدید در نود جی اس بسازیم، متدهای مختلفی را همچون push، pop، shift، unshift ، reverse ، sort ، sort ، solice ،concat ، indexOf ، lastIndexOf ، join ، slice ، every ، filter ، find ، forEach ، reduce و بررسی کردیم و یاد گرفتیم. تمام متدها با مثالهایی توضیح داده شدند.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.