آراÛÙâÙØ§ Ù ØªØ¯ÙØ§Û Ø²ÛØ§Ø¯Û را ÙØ±Ø§ÙÙ Ù ÛâÚ©ÙÙØ¯. Ø¨Ø±Ø§Û Ø³Ø§Ø¯ÙâØ³Ø§Ø²ÛØ در اÛÙ ÙØµÙ Ù ØªØ¯ÙØ§ ب٠ÚÙØ¯ گرÙÙ ØªÙØ³Û٠شدÙâØ§ÙØ¯.
اضاÙÙ/ØØ°Ù کرد٠عضÙÙØ§
٠ا از ÙØ¨Ù Ù ØªØ¯ÙØ§ÛÛ Ú©Ù Ø¯Ø± آغاز ÛØ§ Ø§ÙØªÙØ§Û Ø¢Ø±Ø§ÛÙ ÚÛØ²Û را ØØ°Ù ÛØ§ اضاÙÙ Ù ÛâÚ©ÙÙØ¯ را Ù ÛâØ´ÙØ§Ø³ÛÙ :
arr.push(...items)â Ø§Ù٠اÙâÙØ§ را Ø¨Ù Ø§ÙØªÙا اضاÙÙ Ù ÛâÚ©ÙØ¯Øarr.pop()â ÛÚ© اÙ٠ا٠را از Ø§ÙØªÙا خارج Ù ÛâÚ©ÙØ¯Øarr.shift()â ÛÚ© اÙ٠ا٠را از آغاز خارج Ù ÛâÚ©ÙØ¯Øarr.unshift(...items)â ÛÚ© اÙ٠ا٠را ب٠آغاز اضاÙÙ Ù ÛâÚ©ÙØ¯.
اÛÙØ¬Ø§ ÚÙØ¯ ٠تد دÛگر دارÛÙ .
٠تد splice
ÚØ·Ùر ÛÚ© اÙ٠ا٠را از آراÛÙ ØØ°Ù Ú©ÙÛÙ Ø
آراÛÙâÙØ§ Ø´ÛØ¡ ÙØ³ØªÙØ¯Ø Ù¾Ø³ Ù
ÛâØªÙØ§ÙÛÙ
از delete Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
:
let arr = ["I", "go", "home"];
delete arr[1]; // "go" ØØ°Ù
alert( arr[1] ); // undefined
// now arr = ["I", , "home"];
alert( arr.length ); // 3
اÙÙ
Ø§Ù ØØ°Ù Ø´Ø¯Ø Ø§Ù
ا آراÛÙ ÙÙÙØ² ÙÙ
3 عض٠دارد Ú©Ù Ù
ÛâØªÙØ§ÙÛÙ
آ٠را با arr.length == 3 ببÛÙÛÙ
.
اÛÙ ÚÛØ² Ø·Ø¨ÛØ¹Û است ÚÙÙ delete obj.key ÛÚ© Ù
ÙØ¯Ø§Ø± را با Ø§Ø³ØªÙØ§Ø¯Ù از key ØØ°Ù Ù
ÛâÚ©ÙØ¯. Ø¨Ù Ø·ÙØ± Ú©ÙÛ Ú©Ø§Ø±Ø´ ÙÙ
Û٠است. Ø¨Ø±Ø§Û Ø´ÛØ¡Ùا Ù
ÙØ§Ø³Ø¨ است. اÙ
ا Ø¨Ø±Ø§Û Ø¢Ø±Ø§ÛÙâÙØ§ Ù
ا Ù
عÙ
ÙÙØ§ Ù
ÛâØ®ÙØ§ÙÛÙ
ک٠بÙÛ٠اÙÙ
اÙâÙØ§ پخش Ø´ÙÙØ¯ Ù ÙØ¶Ø§Û آزاد شد٠را اشغا٠کÙÙØ¯. تÙÙØ¹ دارÛÙ
Ú©Ù Ø§ÙØ§Ù آراÛÙâØ§Û Ú©ÙØªØ§ÙâØªØ± داشت٠باشÛÙ
.
Ø¨ÙØ§Ø¨Ø±Ø§ÛÙ Ù ØªØ¯ÙØ§Û خاص Ø¨Ø§ÛØ¯ Ø§Ø³ØªÙØ§Ø¯Ù Ø´ÙÙØ¯.
٠تد arr.splice ÛÚ© Ø´Ù Ø´ÛØ± Ø§Ø±ØªØ´Û Ø³ÙØ¦ÛØ³Û Ø¨Ø±Ø§Û Ø¢Ø±Ø§ÛÙâÙØ§ است. Ù ÛâØªÙØ§Ùد ÙØ± Ú©Ø§Ø±Û Ú©ÙØ¯: اضاÙÙ Ú©ÙØ¯Ø ØØ°Ù Ú©ÙØ¯ ٠اÙ٠اÙâÙØ§ را جاÛگزÛÙ Ú©ÙØ¯.
سÛÙØªÚ©Ø³ آ٠اÛÙÚ¯ÙÙ٠است:
arr.splice(start[, deleteCount, elem1, ..., elemN])
اÛÙ Ù
تد arr را از اÛÙØ¯Ú©Ø³ start تغÛÛØ± Ù
ÛâØ¯ÙØ¯: ب٠تعداد deleteCount اÙÙ
Ø§Ù ØØ°Ù Ù
ÛâÚ©ÙØ¯ ٠سپس elem1, ..., elemN را در Ù
Ú©Ø§Ù Ø®ÙØ¯Ø´Ø§Ù اضاÙÙ Ù
ÛâÚ©ÙØ¯. آراÛÙâØ§Û Ø§Ø² اÙÙ
اÙâÙØ§Û ØØ°Ù شد٠را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.
اÛ٠٠تد را با Ù Ø«Ø§Ù Ø¨Ù Ø±Ø§ØØªÛ Ù ØªÙØ¬Ù Ù ÛâØ´ÙÛØ¯.
Ø¨ÛØ§ÛÛØ¯ با ØØ°Ù Ú©Ø±Ø¯Ù Ø´Ø±ÙØ¹ Ú©ÙÛÙ :
let arr = ["I", "study", "JavaScript"];
arr.splice(1, 1); // از اÛÙØ¯Ú©Ø³ 1 ب٠تعداد 1 اÙÙ
Ø§Ù ØØ°Ù Ú©Ù
alert( arr ); // ["I", "JavaScript"]
Ø±Ø§ØØª Ø§Ø³ØªØ ÙÙØ از اÛÙØ¯Ú©Ø³ 1 ب٠تعداد 1 اÙÙ
Ø§Ù ØØ°Ù کرد.
در ٠ثا٠بعد ٠ا 3 اÙ٠ا٠را ØØ°Ù ٠آÙÙØ§ را با د٠اÙ٠ا٠جاÛگزÛÙ Ù ÛâÚ©ÙÛÙ :
let arr = ["I", "study", "JavaScript", "right", "now"];
// س٠اÙÙ
ا٠ابتداÛÛ Ø±Ø§ ØØ°Ù ک٠٠آÙÙØ§ را با اÙÙ
اÙâÙØ§Û دÛگر جاÛگزÛÙ Ú©Ù
arr.splice(0, 3, "Let's", "dance");
alert( arr ) // now ["Let's", "dance", "right", "now"]
اÛÙØ¬Ø§ Ù
ÛâØ¨ÛÙÛÙ
Ú©Ù splice آراÛÙâØ§Û Ø§Ø² اÙÙ
اÙâÙØ§Û ØØ°Ù شد٠را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯:
let arr = ["I", "study", "JavaScript", "right", "now"];
// د٠اÙÙ
ا٠اÙ٠را ØØ°Ù Ú©Ù
let removed = arr.splice(0, 2);
alert( removed ); // "I", "study" <-- array of removed elements
Ù
تد splice ÙÙ
ÚÙÛÙ ÙØ§Ø¯Ø± ب٠اضاÙ٠کرد٠اÙÙ
ا٠بدÙÙ ÙÛÚ ØØ°ÙÛØ§ØªÛ است. Ø¨Ø±Ø§Û Ø§Û٠کار Ø¨Ø§ÛØ¯ deleteCount را 0 بگذارÛÙ
:
let arr = ["I", "study", "JavaScript"];
// از اÛÙØ¯Ú©Ø³ 2
// ب٠تعداد 0 ØØ°Ù Ú©Ù
// را اضاÙÙ Ú©Ù "language" Ù "complex" سپس
arr.splice(2, 0, "complex", "language");
alert( arr ); // "I", "study", "complex", "language", "JavaScript"
اÛÙØ¬Ø§ ٠در دÛگر Ù ØªØ¯ÙØ§Û آراÛÙØ اÛÙØ¯Ú©Ø³âÙØ§Û Ù ÙÙÛ ÙØ§Ø¨Ù Ø§Ø³ØªÙØ§Ø¯Ù ÙØ³ØªÙد. Ø¢ÙÙØ§ Ù ÙÙØ¹Ûت را از Ø§ÙØªÙØ§Û Ø¢Ø±Ø§Û٠٠شخص Ù ÛâÚ©ÙÙØ¯Ø ٠ث٠اÛÙØ¬Ø§:
let arr = [1, 2, 5];
// از اÛÙØ¯Ú©Ø³ 1- (ÛÚ© ÙØ¯Ù
ÙØ¨Ù از Ø§ÙØªÙا)
// ب٠تعداد 0 اÙÙ
Ø§Ù ØØ°Ù Ú©ÙØ
// سپس 3 Ù 4 را اضاÙÙ Ú©Ù
arr.splice(-1, 0, 3, 4);
alert( arr ); // 1,2,3,4,5
٠تد slice
Ù
تد arr.slice از Ù
تد arr.splice ک٠از ÙØØ§Ø¸ Ø¸Ø§ÙØ±Û شبÛ٠ب٠آ٠است Ø¨Ø³ÛØ§Ø± سادÙâØªØ± است.
سÛÙØªÚ©Ø³ اÛÙÚ¯ÙÙ٠است:
arr.slice([start], [end])
اÛÙ Ù
تد ÛÚ© آراÛÙ Ø¬Ø¯ÛØ¯ ک٠تÙ
اÙ
اÙÙ
اÙâÙØ§ را از اÛÙØ¯Ú©Ø³ start تا end (شاÙ
Ù Ø®ÙØ¯ end ÙÙ
ÛâØ´ÙØ¯) Ú©Ù¾Û Ù
ÛâÚ©ÙØ¯Ø برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯. start Ù end ÙØ± د٠Ù
ÛâØªÙØ§ÙÙØ¯ Ù
ÙÙÛ Ø¨Ø§Ø´ÙØ¯Ø ک٠در اÛÙ ØµÙØ±Øª Ù
ÙÙØ¹Ûت از Ø§ÙØªÙØ§Û Ø¢Ø±Ø§ÛÙ ØØ³Ø§Ø¨ Ù
ÛâØ´ÙØ¯.
اÛÙ Ù
تد شبÛÙ Ù
تد رشت٠str.slice Ø§Ø³ØªØ Ø§Ù
ا Ø¨Ù Ø¬Ø§Û Ø²ÛØ± Ø±Ø´ØªÙØ Ø²ÛØ± آراÛÙ Ø§ÛØ¬Ø§Ø¯ Ù
ÛâÚ©ÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
let arr = ["t", "e", "s", "t"];
alert( arr.slice(1, 3) ); // e,s (Ú©Ù¾Û Ú©Ø±Ø¯Ù Ø§Ø² 1 تا 3)
alert( arr.slice(-2) ); // s,t (Ú©Ù¾Û Ú©Ø±Ø¯Ù Ø§Ø² 2- تا Ø§ÙØªÙا)
ÙÙ
ÚÙÛÙ Ù
ÛâØªÙØ§ÙÛÙ
آ٠را بدÙ٠آرگÙÙ
ا٠ÙÙ
صدا بزÙÛÙ
: arr.slice() Ú©Ù ÛÚ© Ú©Ù¾Û Ø§Ø² arr Ù
ÛâØ³Ø§Ø²Ø¯. Ù
عÙ
ÙÙØ§ از اÛÙ Ø±ÙØ´ Ø¨Ø±Ø§Û Ø§ÛØ¬Ø§Ø¯ ÛÚ© Ú©Ù¾Û Ø¨Ø§ ÙØ¯Ù اÛÙک٠تغÛÛØ±Ø§Øª Ø¢ÛÙØ¯Ù رÙÛ Ø¢Ø±Ø§Û٠اصÙÛ ØªØ§Ø«ÛØ±Û Ùگذارد Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÙØ¯.
٠تد concat
٠تد arr.concat ÛÚ© آراÛÙ Ø¬Ø¯ÛØ¯ Ù ÛâØ³Ø§Ø²Ø¯ Ú©Ù ØØ§ÙÛ Ù ÙØ¯Ø§Ø±ÙØ§Û Ø¢Ø±Ø§ÛÙâÙØ§Û دÛگر ٠اÙ٠اÙâÙØ§Û اضاÙÛ Ø§Ø³Øª.
سÛÙØªÚ©Ø³ آ٠اÛÙÚ¯ÙÙ٠است:
arr.concat(arg1, arg2...)
اÛ٠٠تد Ø¨Ù ÙØ± ØªØ¹Ø¯Ø§Ø¯Û Ø¢Ø±Ú¯Ù٠ا٠٠ÛâÙ¾Ø°ÛØ±Ø¯ â Ú٠آراÛÙ Ø¨Ø§Ø´ÙØ¯ ÚÙ Ù ÙØ¯Ø§Ø±.
ÙØªÛج٠آ٠ÛÚ© آراÛÙ Ø¬Ø¯ÛØ¯ ØØ§ÙÛ Ø§ÙÙ
اÙâÙØ§Û arrØ Ø³Ù¾Ø³ arg1Ø arg2 Ù ØºÛØ±Ù.
اگر آرگÙÙ
ا٠argN ÛÚ© آراÛÙ Ø¨Ø§Ø´Ø¯Ø Ø³Ù¾Ø³ تÙ
اÙ
اÙÙ
اÙâÙØ§Û Ø¢Ù Ú©Ù¾Û Ù
ÛâØ´ÙØ¯. در ØºÛØ± اÛÙ ØµÙØ±ØªØ Ø®ÙØ¯ آرگÙÙ
Ø§Ù Ú©Ù¾Û Ù
ÛâØ´ÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
let arr = [1, 2];
// Ù [3,4] arr :ساخت ÛÚ© آراÛ٠از
alert( arr.concat([3, 4]) ); // 1,2,3,4
// Ù [3,4] Ù [5,6] arr :ساخت ÛÚ© آراÛ٠از
alert( arr.concat([3, 4], [5, 6]) ); // 1,2,3,4,5,6
// Ù [3,4]Ø Ø³Ù¾Ø³ اضاÙ٠کرد٠Ù
ÙØ¯Ø§Ø±ÙØ§Û 5 Ù 6 arr :ساخت ÛÚ© آراÛ٠از
alert( arr.concat([3, 4], 5, 6) ); // 1,2,3,4,5,6
Ø¨Ù Ø·ÙØ± ٠ع٠ÙÙØ اÛ٠٠تد ÙÙØ· اÙ٠اÙâÙØ§ را از آراÛÙâÙØ§ Ú©Ù¾Û Ù ÛâÚ©ÙØ¯. بÙÛÙ Ø´ÛØ¡ÙØ§Ø ØØªÛ اگر شبÛ٠آراÛÙ Ø¨Ø§Ø´ÙØ¯Ø Ø¨Ù Ø·ÙØ± Ú©ÙÛ Ø§Ø¶Ø§ÙÙ Ù ÛâØ´ÙÙØ¯:
let arr = [1, 2];
let arrayLike = {
0: "something",
length: 1
};
alert( arr.concat(arrayLike) ); // 1,2,[object Object]
â¦Ø§Ù
ا اگر ÛÚ© Ø´ÛØ¡ شبÛ٠ب٠آراÛÙ ÛÚ© ÙÛÚÚ¯Û Symbol.isConcatSpreadable Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´Ø¯Ø Ø³Ù¾Ø³ concat با آ٠ب٠عÙÙØ§Ù ÛÚ© آراÛÙ Ø±ÙØªØ§Ø± Ù
ÛâÚ©ÙØ¯: در Ø¹ÙØ¶ اÙÙ
اÙâÙØ§Û آ٠اضاÙÙ Ù
ÛâØ´ÙÙØ¯:
let arr = [1, 2];
let arrayLike = {
0: "something",
1: "else",
[Symbol.isConcatSpreadable]: true,
length: 2
};
alert( arr.concat(arrayLike) ); // 1,2,something,else
ØÙÙ٠زدÙ: forEach
٠تد arr.forEach ب٠٠ا اÛ٠ا٠کا٠را Ù ÛâØ¯ÙØ¯ Ú©Ù ÛÚ© تابع را رÙÛ ØªÙ Ø§Ù Ø§Ù٠اÙâÙØ§Û آراÛ٠اجرا Ú©ÙÛÙ .
سÛÙØªÚ©Ø³ اÛÙÚ¯ÙÙ٠است:
arr.forEach(function(item, index, array) {
// ... با اÙÙ
Ø§Ù Ú©Ø§Ø±Û Ø§ÙØ¬Ø§Ù
دÙÛØ¯
});
Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ اÛ٠کد ÙØ± اÙ٠ا٠آراÛ٠را ÙØ´Ø§Ù Ù ÛâØ¯ÙØ¯:
// را صدا بز٠alert Ø¨Ø±Ø§Û ÙØ± اÙÙ
اÙ
["Bilbo", "Gandalf", "Nazgul"].forEach(alert);
٠اÛ٠کد دربار٠٠ÙÙØ¹Ûت Ø¢ÙÙØ§ در آراÛÙ Ù ÙØ±Ø¯ ÙØ¸Ø± Ø¬Ø²Ø¦ÛØ§Øª Ø¨ÛØ´ØªØ±Û دارد:
["Bilbo", "Gandalf", "Nazgul"].forEach((item, index, array) => {
alert(`${item} is at index ${index} in ${array}`);
});
ÙØªÛج٠تابع (اگر ÚÛØ²Û Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯) ÙØ§Ø¯ÛØ¯Ù Ú¯Ø±ÙØªÙ Ù Ø¯ÙØ± Ø±ÛØ®ØªÙ Ù ÛâØ´ÙØ¯.
جستج٠در آراÛÙ
ØØ§Ù Ø¨ÛØ§ÛÛØ¯ Ù ØªØ¯ÙØ§ÛÛ Ø±Ø§ Ø¨Ø®ÙØ§ÙÛ٠ک٠در آراÛ٠جستج٠٠ÛâÚ©ÙÙØ¯.
Ù ØªØ¯ÙØ§Û indexOf/lastIndexOf and includes
Ù ØªØ¯ÙØ§Û arr.indexOf Ù arr.includes سÛÙØªÚ©Ø³ Ù Ø´Ø§Ø¨Ù Ø¯Ø§Ø±ÙØ¯ ٠اساسا Ù٠ا٠کار ÙÙ ØªØ§ÛØ§Ù Ø®ÙØ¯ در رشتÙâÙØ§ را Ø§ÙØ¬Ø§Ù Ù ÛâØ¯ÙÙØ¯Ø ا٠ا Ø¨Ù Ø¬Ø§Û Ú©Ø§Ø±Ø§Ú©ØªØ±ÙØ§ با اÙ٠اÙâÙØ§ کار Ø¯Ø§Ø±ÙØ¯:
arr.indexOf(item, from)â Ø¨Ø§ Ø´Ø±ÙØ¹ از اÛÙØ¯Ú©Ø³fromØ¨Ù Ø¯ÙØ¨Ø§ÙitemÙ Ûâگردد ٠اÛÙØ¯Ú©Ø³Û ک٠اÙ٠ا٠در Ø¢Ù Ù¾ÛØ¯Ø§ شد را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯Ø در ØºÛØ± اÛÙ ØµÙØ±Øª1-.arr.includes(item, from)â Ø¨Ø§ Ø´Ø±ÙØ¹ از اÛÙØ¯Ú©Ø³fromØ¨Ù Ø¯ÙØ¨Ø§ÙitemÙ ÛâÚ¯Ø±Ø¯Ø¯Ø Ø§Ú¯Ø± Ù¾ÛØ¯Ø§ Ú©ÙØ¯trueرا بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.
Ù
عÙ
ÙÙØ§ اÛÙ Ù
ØªØ¯ÙØ§ تÙÙØ§ با ÛÚ© آرگÙÙ
Ø§Ù Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙÙØ¯: اÙÙ
اÙÛ (item) Ú©Ù Ø¬Ø³ØªØ¬Ù Ø¨Ø±Ø§Û Ø¢Ù Ø§ÙØ¬Ø§Ù
Ù
ÛâØ´ÙØ¯. Ø¨Ù Ø·ÙØ± Ù¾ÛØ´âÙØ±Ø¶Ø جستج٠از ابتدا Ø§ÙØ¬Ø§Ù
Ù
ÛâØ´ÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
let arr = [1, 0, false];
alert( arr.indexOf(0) ); // 1
alert( arr.indexOf(false) ); // 2
alert( arr.indexOf(null) ); // -1
alert( arr.includes(1) ); // true
ØªÙØ¬Ù Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ Ú©Ù Ù
ØªØ¯ÙØ§ از Ù
ÙØ§Ûس٠=== Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÙØ¯. پس اگر Ù
ا Ø¨Ù Ø¯ÙØ¨Ø§Ù false باشÛÙ
Ø Ù
تد دÙÛÙØ§ false را Ù¾ÛØ¯Ø§ Ù
ÛâÚ©ÙØ¯ Ù ÙÙ ØµÙØ± را.
اگر Ù
ا Ø¨Ø®ÙØ§ÙÛÙ
Ø¨Ø±Ø±Ø³Û Ú©ÙÛÙ
Ú©Ù item درÙ٠آراÛÙ ÙØ¬Ùد دارد ÛØ§ ÙÙ Ù Ø¨Ù Ø¯ÙØ¨Ø§Ù اÛÙØ¯Ú©Ø³ دÙÛÙ ÙÛØ³ØªÛÙ
Ø Ù¾Ø³ arr.includes ØªØ±Ø¬ÛØ داد٠Ù
ÛâØ´ÙØ¯.
Ù
تد arr.lastIndexOf Ù
اÙÙØ¯ indexOf است اÙ
ا از راست ب٠ÚÙ¾ جستج٠Ù
ÛâÚ©ÙØ¯.
let fruits = ['Apple', 'Orange', 'Apple']
alert( arr.indexOf('Apple') ); // 0 (Apple اÙÙÛÙ)
alert( arr.lastIndexOf('Apple') ); // 2 (Apple آخرÛÙ)
````smart header="Ù
تد `includes` Ù
ÙØ¯Ø§Ø± `NaN` را Ø¨Ù Ø¯Ø±Ø³ØªÛ Ù
Ø¯ÛØ±Ûت Ù
ÛâÚ©ÙØ¯"
ÛÚ© ØªÙØ§Ùت Ø¨Ø³ÛØ§Ø± Ú©ÙÚÚ© `includes` اÛ٠است ک٠اÛÙ Ù
تد Ø¨Ù Ø¯Ø±Ø³ØªÛ `NaN` را Ú©ÙØªØ±Ù Ù
ÛâÚ©ÙØ¯Ø درست برعکس `indexOf`:
```js run
const arr = [NaN];
alert( arr.indexOf(NaN) ); // -1 (Ø§Ø´ØªØ¨Ø§Ù Ø§Ø³ØªØ Ø¨Ø§ÛØ¯ 0 باشد)
alert( arr.includes(NaN) );// true (درست است)
ب٠اÛ٠دÙÛÙ Ú©Ù includes Ø¨Ø³ÛØ§Ø± بعدتر Ø¨Ù Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت اضاÙ٠شد ٠از درÙ٠از اÙÚ¯ÙØ±ÛتÙ
âÙØ§Û Ù
ÙØ§ÛØ³Ù Ø¨Ø±ÙØ²ØªØ±Û Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙØ¯.
Ù ØªØ¯ÙØ§Û find Ù findIndex/findLastIndex
ØªØµÙØ± Ú©ÙÛØ¯ Ú©Ù ÛÚ© آراÛÙâØ§Û Ø§Ø² Ø´ÛØ¡Ùا دارÛÙ . ÚÚ¯ÙÙÙ Ø¨Ø§ÛØ¯ ÛÚ© Ø´ÛØ¡ با Ø´Ø±Ø·Û Ù Ø´Ø®Øµ را Ù¾ÛØ¯Ø§ Ú©ÙÛÙ Ø
اÛÙØ¬Ø§Ø³Øª ک٠٠تد arr.find(fn) بدرد Ù ÛâØ®ÙØ±Ø¯.
سÛÙØªÚ©Ø³ آ٠اÛÙÚ¯ÙÙ٠است:
let result = arr.find(function(item, index, array) {
// Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ù Ø´ÙØ¯Ø اÙÙ
Ø§Ù Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ù Ù
ÛâØ´ÙØ¯ Ù ØÙÙÙâÛ ØªÚ©Ø±Ø§Ø± Ù
تÙÙÙ Ù
ÛâØ´ÙØ¯ true اگر Ù
ÙØ¯Ø§Ø±
// Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ù Ù
ÛâØ´ÙØ¯ undefined Ù
ÙØ¯Ø§Ø± falsy Ø¨Ø±Ø§Û Ø³ÙØ§Ø±ÛÙÙØ§Û
});
تابع Ø¨Ø±Ø§Û Ø§Ù٠اÙâÙØ§Û آراÛÙØ ÛÚ©Û Ù¾Ø³ از دÛÚ¯Ø±ÛØ صدا زد٠٠ÛâØ´ÙØ¯:
itemاÙ٠ا٠است.indexاÛÙØ¯Ú©Ø³ آ٠است.arrayØ®ÙØ¯ آراÛ٠است.
اگر true Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ø جستج٠Ù
تÙÙÙ Ù
ÛâØ´ÙØ¯Ø item Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ù Ù
ÛâØ´ÙØ¯. اگر ÚÛØ²Û Ù¾ÛØ¯Ø§ ÙØ´ÙØ¯Ø undefined Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ù Ù
ÛâØ´ÙØ¯.
Ø¨Ø±Ø§Û Ù
Ø«Ø§ÙØ Ù
ا ÛÚ© آراÛÙâØ§Û Ø§Ø² کاربرا٠دارÛÙ
Ø Ú©Ù ÙØ± کداÙ
Ø¯Ø§Ø±Ø§Û id Ù name ÙØ³ØªÙد. Ø¨ÛØ§ÛÛØ¯ Ú©Ø§Ø±Ø¨Ø±Û Ú©Ù id == 1 داشت٠باشد را Ù¾ÛØ¯Ø§ Ú©ÙÛÙ
:
let users = [
{id: 1, name: "John"},
{id: 2, name: "Pete"},
{id: 3, name: "Mary"}
];
let user = users.find(item => item.id == 1);
alert(user.name); // John
در ÙØ§ÙØ¹ÛØªØ آراÛÙâÙØ§ÛÛ Ø§Ø² Ø´ÛØ¡Ùا ÚÛØ² Ù
تداÙÙÛ Ø§Ø³ØªØ Ù¾Ø³ Ù
تد find Ø¨Ø³ÛØ§Ø± Ù
ÙÛØ¯ است.
ØªÙØ¬Ù Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ ک٠در Ù
Ø«Ø§Ù Ø¨Ø§ÙØ§ Ù
ا تابع item => item.id == 1 را ÙÙ
را٠با ÛÚ© آرگÙÙ
Ø§Ù Ø¨Ø±Ø§Û find در ÙØ¸Ø± Ú¯Ø±ÙØªÛÙ
. اÛÙ ÚÛØ² Ù
عÙ
ÙÙÛ Ø§Ø³ØªØ Ø¨ÙÛ٠آرگÙÙ
اÙâÙØ§Û اÛ٠تابع Ø¨Ù ÙØ¯Ø±Øª Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙÙØ¯.
Ù
تد arr.findIndex سÛÙØªÚ©Ø³ ÛکساÙÛ Ø¯Ø§Ø±Ø¯ اÙ
ا Ø¨Ù Ø¬Ø§Û Ø®ÙØ¯ اÙÙ
ا٠اÛÙØ¯Ú©Ø³Û ک٠اÙÙ
ا٠در Ø¢Ù Ù¾ÛØ¯Ø§ شد را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯. اگر ÚÛØ²Û Ù¾ÛØ¯Ø§ ÙØ´Ø¯ Ù
ÙØ¯Ø§Ø± 1- Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ù Ù
ÛâØ´ÙØ¯.
Ù
تد arr.findLastIndex Ù
اÙÙØ¯ findIndex است اÙ
ا Ù
اÙÙØ¯ lastIndexOf از راست ب٠ÚÙ¾ جستج٠Ù
ÛâÚ©ÙØ¯.
اÛÙØ¬Ø§ ÛÚ© ٠ثا٠دارÛÙ :
let users = [
{id: 1, name: "John"},
{id: 2, name: "Pete"},
{id: 3, name: "Mary"},
{id: 4, name: "John"}
];
// را Ù¾ÛØ¯Ø§ Ú©Ù John اÛÙØ¯Ú©Ø³ اÙÙÛÙ
alert(users.findIndex(user => user.name == 'John')); // 0
// را Ù¾ÛØ¯Ø§ Ú©Ù John اÛÙØ¯Ú©Ø³ آخرÛÙ
alert(users.findLastIndex(user => user.name == 'John')); // 3
٠تد filter
Ù
تد find Ø¨Ø±Ø§Û ÛÚ© (اÙÙÛÙ) اÙÙ
ا٠ک٠باعث Ø´ÙØ¯ تابع true Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ø جستج٠Ù
ÛâÚ©ÙØ¯.
اگر ٠٠ک٠باشد تعداد Ø¨ÛØ´ØªØ±Û Ù ÙØ¬Ùد Ø¨Ø§Ø´ÙØ¯Ø Ù ÛâØªÙØ§ÙÛ٠از arr.filter(fn) Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ .
سÛÙØªÚ©Ø³ Ø¢Ù Ù
شاب٠find است اÙ
ا filter ÛÚ© آراÛ٠از اÙÙ
اÙâÙØ§Û Ù
ÙØ·Ø¨Ù را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯:
let results = arr.filter(function(item, index, array) {
// باشد اÙÙ
Ø§Ù Ø¨Ù ÙØªÛجÙâÙØ§ اضاÙÙ Ù
ÛâØ´ÙØ¯ Ù ØÙÙ٠تکرار اداÙ
Ù Ù¾ÛØ¯Ø§ Ù
ÛâÚ©ÙØ¯ true اگر
// اگر ÚÛØ²Û Ù¾ÛØ¯Ø§ ÙØ´Ùد ÛÚ© آراÛ٠خاÙÛ Ø¨Ø±Ù
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯
});
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
let users = [
{id: 1, name: "John"},
{id: 2, name: "Pete"},
{id: 3, name: "Mary"}
];
// آراÛ٠شاÙ
٠د٠کاربر اÙ٠را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯
let someUsers = users.filter(item => item.id < 3);
alert(someUsers.length); // 2
تغÛÛØ± شک٠داد٠آراÛÙ
Ø¨ÛØ§ÛÛØ¯ ب٠سراغ Ù ØªØ¯ÙØ§ÛÛ Ø¨Ø±ÙÛÙ Ú©Ù ÛÚ© آراÛ٠را تغÛÛØ± Ø´Ú©Ù Ù ÙØ¸Ù Ø¯ÙØ¨Ø§Ø±Ù Ù ÛâØ¯ÙÙØ¯.
٠تد map
٠تد arr.map ÛÚ©Û Ø§Ø² پرکاربردترÛÙ Ù Ù ØªØ¯ÙØ§ÙâØªØ±ÛÙ Ù ØªØ¯ÙØ§Ø³Øª.
اÛ٠٠تد ÛÚ© تابع را Ø¨Ø±Ø§Û ÙØ± اÙ٠ا٠آراÛ٠صدا Ù ÛâØ²ÙØ¯ ٠آراÛÙâØ§Û Ø§Ø² ÙØªÛج٠را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.
سÛÙØªÚ©Ø³ آ٠اÛÙÚ¯ÙÙ٠است:
let result = arr.map(function(item, index, array) {
// Ø¨Ù Ø¬Ø§Û Ø§ÙÙ
Ø§ÙØ Ù
ÙØ¯Ø§Ø± Ø¬Ø¯ÛØ¯ را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯
});
Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ ٠ا ÙØ± اÙ٠ا٠را ب٠طÙ٠آ٠تغÛÛØ± Ù ÛâØ¯ÙÛÙ :
let lengths = ["Bilbo", "Gandalf", "Nazgul"].map(item => item.length);
alert(lengths); // 5,7,6
٠تد sort(fn)
صدازد٠arr.sort() آراÛ٠را در Ù ØÙ با تغÛÛØ± Ø¯Ø§Ø¯Ù ØªØ±ØªÛØ¨ اÙ٠اÙâÙØ§Ø ٠رتب Ù ÛâÚ©ÙØ¯.
ÙÙ
ÚÙÛ٠اÛÙ Ù
تد آراÛÙ Ù
رتب شد٠را برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯Ø اÙ
ا ÙÙ
Ø§ÙØ·Ùر Ú©Ù Ø®ÙØ¯ arr تغÛÛØ± داد٠Ù
ÛâØ´ÙØ¯Ø Ù
ÙØ¯Ø§Ø± Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ù شد٠Ù
عÙ
ÙÙØ§ ÙØ§Ø¯ÛØ¯Ù Ú¯Ø±ÙØªÙ Ù
ÛâØ´ÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
let arr = [ 1, 2, 15 ];
// را Ø¯ÙØ¨Ø§Ø±Ù ØªØ±ØªÛØ¨ Ø¨ÙØ¯Û Ù
ÛâÚ©ÙØ¯ arr اÛÙ Ù
تد
arr.sort();
alert( arr ); // 1, 15, 2
ÚÛØ² Ø¹Ø¬ÛØ¨Û را در ÙØªÛØ¬Ù Ù ØªÙØ¬Ù Ø´Ø¯ÛØ¯Ø
ØªØ±ØªÛØ¨ اÙÙ
اÙâÙØ§ 1, 15, 2 شد. اÛ٠اشتبا٠است. اÙ
ا ÚØ±Ø§Ø
اÙ٠اÙâÙØ§ Ø¨Ù ØµÙØ±Øª Ù¾ÛØ´Ùرض ب٠عÙÙØ§Ù رشت٠٠رتب Ù ÛâØ´ÙÙØ¯.
Ø¨Ù Ø·ÙØ± Ú©ÙÛØ تÙ
اÙ
اÙÙ
اÙâÙØ§ Ø¨Ø±Ø§Û Ø§ÙØ¬Ø§Ù
Ù
ÙØ§Ûس٠ب٠رشت٠تبدÛÙ Ù
ÛâØ´ÙÙØ¯. Ø¨Ø±Ø§Û Ø±Ø´ØªÙâÙØ§Ø ØªØ±ØªÛØ¨âØ¨ÙØ¯Û ÙÙØªâÙØ§Ù
ÙâØ§Û Ø§Ø¹Ù
ا٠Ù
ÛâØ´ÙØ¯ ٠در اÛÙ ØµÙØ±Øª "2" > "15" است.
Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯Ù از ØªØ±ØªÛØ¨âØ¨ÙØ¯Û Ø®ÙØ¯Ù
Ø§ÙØ Ù
ا ÙÛØ§Ø² دارÛÙ
Ú©Ù ÛÚ© تابع را ب٠عÙÙØ§Ù آرگÙÙ
ا٠arr.sort() ÙØ±Ø§Ø± دÙÛÙ
.
تابع Ø¨Ø§ÛØ¯ Ø¯Ù Ù ÙØ¯Ø§Ø± Ø¯ÙØ®Ùا٠را Ù ÙØ§ÛØ³Ù Ú©ÙØ¯ Ù ÚÛØ²Û را Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯:
function compare(a, b) {
if (a > b) return 1; // اگر Ù
ÙØ¯Ø§Ø± اÙ٠بزرگتر از دÙÙ
Û Ø¨Ø§Ø´Ø¯
if (a == b) return 0; // اگر Ù
ÙØ¯Ø§Ø±Ùا برابر Ø¨Ø§Ø´ÙØ¯
if (a < b) return -1; // اگر Ù
ÙØ¯Ø§Ø± اÙÙ Ú©Ù
تر از دÙÙ
Û Ø¨Ø§Ø´Ø¯
}
Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ Ø¨Ø±Ø§Û Ù Ø±ØªØ¨ کرد٠ب٠عÙÙØ§Ù اعداد:
function compareNumeric(a, b) {
if (a > b) return 1;
if (a == b) return 0;
if (a < b) return -1;
}
let arr = [ 1, 2, 15 ];
arr.sort(compareNumeric);
alert(arr); // 1, 2, 15
ØØ§Ùا ÙÙ Ø§ÙØ·Ùر Ú©Ù Ø§ÙØªØ¸Ø§Ø± Ù ÛâØ±ÙØª کار Ù ÛâÚ©ÙØ¯.
Ø¨ÛØ§ÛÛØ¯ Ú©Ù
Û Ø¹ÙØ¨ بÙ
اÙÛÙ
٠ببÛÙÛÙ
ÚÙ ÚÛØ²Û در ØØ§Ù Ø§ØªÙØ§Ù Ø§ÙØªØ§Ø¯Ù است. arr Ù
ÛâØªÙØ§Ùد آراÛÙâØ§Û Ø§Ø² ÙØ± ÚÛØ²Û باشد ÙÙØ Ù
Ù
ک٠است شاÙ
٠اعداد ÛØ§ رشتÙâÙØ§ ÛØ§ Ø´ÛØ¡Ùا ÛØ§ ÙØ±ÚÛØ² دÛÚ¯Ø±Û Ø¨Ø§Ø´Ø¯. Ù
ا دستÙâØ§Û Ø§Ø² ÚÛØ²Ùا دارÛÙ
. Ø¨Ø±Ø§Û Ù
رتب Ú©Ø±Ø¯Ù Ø¢ÙØ Ù
ا ب٠ÛÚ© تابع Ù
رتبâÚ©ÙÙØ¯Ù Ú©Ù Ù
ÛâØ¯Ø§ÙØ¯ ÚÚ¯ÙÙ٠اÙÙ
اÙâÙØ§Û دست٠را Ù
ÙØ§ÛØ³Ù Ú©ÙØ¯Ø ÙÛØ§Ø² دارÛÙ
. ØªØ±ØªÛØ¨ رشتÙâØ§Û Ù¾ÛØ´âÙØ±Ø¶ است.
Ù
تد arr.sort(fn) ÛÚ© اÙÚ¯ÙØ±ÛتÙ
Ù
Ø±ØªØ¨âØ³Ø§Ø²Û Ú©ÙÛ Ø±Ø§ Ù¾ÛØ§Ø¯ÙâØ³Ø§Ø²Û Ù
ÛâÚ©ÙØ¯. Ù
ا ÙÛØ§Ø²Û ÙØ¯Ø§Ø±ÛÙ
ک٠بداÙÛÙ
درÙ٠آ٠ÚÙ Ø§ØªÙØ§ÙÛ Ù
ÛâØ§ÙØªØ¯ (اکثر اÙÙØ§Øª از ÛÚ© Ù
Ø±ØªØ¨âØ³Ø§Ø²Û Ø³Ø±ÛØ¹ ÛØ§ Timsort بÙÛÙÙâØ´Ø¯Ù Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙØ¯). اÛÙ Ù
تد آراÛ٠را Ø·Û Ù
ÛâÚ©ÙØ¯Ø اÙÙ
اÙâÙØ§Û آ٠را با Ø§Ø³ØªÙØ§Ø¯Ù از تابع ÙØ±Ø§ÙÙ
شد٠Ù
ÙØ§Ûس٠Ù
ÛâÚ©ÙØ¯ ٠آÙÙØ§ را Ù
رتب Ù
ÛâÚ©ÙØ¯Ø تÙ
اÙ
Ø¢Ù ÚÛØ²Û Ú©Ù Ù
ا ÙÛØ§Ø² دارÛÙ
اÛ٠است Ú©Ù ÛÚ© fn ÙØ±Ø§ÙÙ
Ú©ÙÛÙ
Ú©Ù Ù
ÙØ§Ûس٠را Ø§ÙØ¬Ø§Ù
Ø¯ÙØ¯.
Ø±Ø§Ø³ØªÛØ اگر ٠ا Ø¨Ø®ÙØ§ÙÛ٠بداÙÛ٠ک٠کدا٠اÙ٠اÙâÙØ§ Ù ÙØ§Ûس٠٠ÛâØ´ÙÙØ¯ â ÚÛØ²Û ٠ا را از alert کرد٠آÙÙØ§ ٠تÙÙÙ ÙÙ ÛâÚ©ÙØ¯:
[1, -2, 15, 2, 0, 8].sort(function(a, b) {
alert( a + " <> " + b );
return a - b;
});
اÙÚ¯ÙØ±Ûت٠٠٠ک٠است ÛÚ© اÙ٠ا٠را با ÚÙØ¯ اÙ٠ا٠دÛگر در ØÛÙ ÙØ±Ø§ÛÙØ¯ Ù ÙØ§ÛØ³Ù Ú©ÙØ¯Ø ا٠ا ØªÙØ§Ø´ Ù ÛâÚ©ÙØ¯ ک٠تا جاÛÛ Ú©Ù Ù ÛâØªÙØ§Ùد Ù ÙØ§ÛسÙâÙØ§Û Ú©Ù Û Ø§ÙØ¬Ø§Ù Ø¯ÙØ¯.
در ÙØ§Ùع ÛÚ© تابع Ù ÙØ§Ûس٠ÙÙØ· ÙÛØ§Ø² دارد Ú©Ù ÛÚ© عدد ٠ثبت را Ø¨Ø±Ø§Û Ø§ÛÙک٠بگÙÛØ¯ «بزرگتر» است Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯ Ù ÛÚ© عدد Ù ÙÙÛ Ø±Ø§ Ø¨Ø±Ø§Û Ú¯ÙØªÙ «ک٠تر» است.
اÛÙ ÙÛÚÚ¯Û Ø³Ø¨Ø¨ Ù ÛâØ´ÙØ¯ ک٠تابعâÙØ§Û Ú©ÙØªØ§ÙâØªØ±Û ÙÙØ´ØªÙ Ø´ÙØ¯:
let arr = [ 1, 2, 15 ];
arr.sort(function(a, b) { return a - b; });
alert(arr); // 1, 2, 15
تابعâÙØ§Û Ù¾ÛکاÙÛ Ø±Ø§ Ø¨Ù ÛØ§Ø¯ Ø¯Ø§Ø±ÛØ¯Ø ٠ا Ù ÛâØªÙØ§ÙÛ٠از Ø¢ÙÙØ§ Ø¨Ø±Ø§Û Ù Ø±ØªØ¨âØ³Ø§Ø²Û ØªÙ ÛØ²ØªØ± Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ :
arr.sort( (a, b) => a - b );
اÛ٠کد دÙÛÙØ§ ٠اÙÙØ¯ ÙØ³Ø®Ù Ø·ÙÙØ§ÙÛâØªØ± Ø¨Ø§ÙØ§ÛÛ Ú©Ø§Ø± Ù ÛâÚ©ÙØ¯.
localeCompare Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø§ÙÚ¯ÙØ±ÛØªÙ Ù ÙØ§Ûس٠رشتÙâÙØ§ را Ø¨Ù ÛØ§Ø¯ Ø¯Ø§Ø±ÛØ¯Ø اÛ٠اÙÚ¯ÙØ±ÛØªÙ Ø¨Ù ØµÙØ±Øª Ù¾ÛØ´âÙØ±Ø¶ ØØ±Ù٠را با Ú©Ø¯ÙØ§Û Ø¢ÙÙØ§ Ù ÙØ§Ûس٠٠ÛâÚ©ÙØ¯.
Ø¨Ø±Ø§Û Ø¨Ø³Ø§Ø±Û Ø§Ø² ØØ±Ù٠اÙÙØ¨Ø§Ø Ø¨ÙØªØ± است از Ù
تد str.localeCompare Ø¨Ø±Ø§Û Ù
رتبâکرد٠صØÛØ ØØ±ÙÙ Ø§Ø³ØªÙØ§Ø¯Ù Ø´ÙØ¯Ø Ù
اÙÙØ¯ Ã.
Ø¨Ø±Ø§Û Ù Ø«Ø§ÙØ Ø¨ÛØ§ÛÛØ¯ ÚÙØ¯ Ú©Ø´ÙØ± را ب٠زبا٠آÙ٠اÙÛ Ù Ø±ØªØ¨ Ú©ÙÛÙ :
let countries = ['Ãsterreich', 'Andorra', 'Vietnam'];
alert( countries.sort( (a, b) => a > b ? 1 : -1) ); // Andorra, Vietnam, Ãsterreich (اشتبا٠است)
alert( countries.sort( (a, b) => a.localeCompare(b) ) ); // Andorra,Ãsterreich,Vietnam (درست است!)
٠تد reverse
Ù
تد arr.reverse ØªØ±ØªÛØ¨ اÙÙ
اÙâÙØ§ را arr برعکس Ù
ÛâÚ©ÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
let arr = [1, 2, 3, 4, 5];
arr.reverse();
alert( arr ); // 5,4,3,2,1
ÙÙ
ÚÙÛ٠اÛÙ Ù
تد اراÛÙ arr را بعد از برعکس شد٠برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.
Ù ØªØ¯ÙØ§Û split and join
ÛÚ© Ù
ÙÙØ¹Ûت در Ø²ÙØ¯Ú¯Û ÙØ§ÙØ¹Û Ø±Ø§ Ù
ÛâÚ¯ÙÛÛÙ
. Ù
ا در ØØ§Ù ÙÙØ´ØªÙ ÛÚ© Ø¨Ø±ÙØ§Ù
Ù Ù¾ÛØ§Ù
âØ±Ø³Ø§Ù ÙØ³ØªÛÙ
٠شخص ÙÛØ³ØªÛ از Ø¯Ø±ÛØ§Ùت Ú©ÙÙØ¯Ú¯Ø§Ù ک٠با کاÙ
ا جدا شدÙâØ§ÙØ¯ را ÙØ§Ø±Ø¯ Ù
ÛâÚ©ÙØ¯: John, Pete, Mary. اÙ
ا ÛÚ© آراÛÙâØ§Û Ø§Ø² اسÙ
âÙØ§ Ø¨Ø³ÛØ§Ø± Ø±Ø§ØØªâتر از ÛÚ© Ø±Ø´ØªÙ Ø®ÙØ§Ùد Ø¨ÙØ¯. ÚÚ¯ÙÙ٠آ٠را Ø¯Ø±ÛØ§Ùت Ú©ÙÛÙ
Ø
Ù
تد str.split(delim) دÙÛÙØ§ ÙÙ
Û٠کار را Ø§ÙØ¬Ø§Ù
Ù
ÛâØ¯ÙØ¯. اÛÙ Ù
تد رشت٠را با Ø§Ø³ØªÙØ§Ø¯Ù از جداکÙÙØ¯ÙâÛ Ø¯Ø§Ø¯Ù Ø´Ø¯Ù delim ب٠ÛÚ© آراÛÙ ØªÙØ³ÛÙ
Ù
ÛâÚ©ÙØ¯.
در Ù Ø«Ø§Ù Ø¨Ø§ÙØ§Ø ٠ا ØªÙØ³Ø· ÛÚ© کا٠ا ک٠بعد Ø¢Ù space Ù ÛâØ¢ÛØ¯ رشت٠را جدا Ù ÛâÚ©ÙÛÙ :
let names = 'Bilbo, Gandalf, Nazgul';
let arr = names.split(', ');
for (let name of arr) {
alert( `A message to ${name}.` ); // A message to Bilbo (٠بÙÛ٠اسÙ
âÙØ§)
}
Ù
تد split ÛÚ© آرگÙÙ
Ø§Ù Ø§Ø®ØªÛØ§Ø±Û دÙÙ
ÙÙ
دارد â ÛÚ© Ù
ØØ¯ÙØ¯ÛØª Ø¨Ø±Ø§Û Ø·Ù٠آراÛÙ. اگر اÛ٠آرگÙÙ
ا٠اضاÙÙ Ø´ÙØ¯Ø سپس اÙÙ
اÙâÙØ§Û دÛگر ÙØ§Ø¯ÛØ¯Ù Ú¯Ø±ÙØªÙ Ù
ÛâØ´ÙÙØ¯. گرÚ٠در عÙ
Ù Ø¨Ù ÙØ¯Ø±Øª Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙØ¯:
let arr = 'Bilbo, Gandalf, Nazgul, Saruman'.split(', ', 2);
alert(arr); // Bilbo, Gandalf
صدا زد٠split(s) با ÛÚ© s خاÙÛ Ø±Ø´ØªÙ Ø±Ø§ ب٠آراÛÙâØ§Û Ø§Ø² ØØ±Ù٠جدا Ù
ÛâÚ©ÙØ¯:
let str = "test";
alert( str.split('') ); // t,e,s,t
صدا زد٠arr.join(glue) عÙ
٠برعکس split را Ø§ÙØ¬Ø§Ù
Ù
ÛâÙØ¯. اÛÙ Ù
تد ÛÚ© رشت٠از arr Ù
ÛâØ³Ø§Ø²Ø¯ Ú©Ù ØªÙØ³Ø· glue اÙÙ
اÙâÙØ§ Ù
تص٠شدÙâØ§ÙØ¯.
Ø¨Ø±Ø§Û Ù Ø«Ø§Ù:
let arr = ['Bilbo', 'Gandalf', 'Nazgul'];
let str = arr.join(';'); // آراÛ٠را با Ø§Ø³ØªÙØ§Ø¯Ù از ; ب٠ÛÚ© رشت٠تبدÛÙ Ú©ÙÛØ¯
alert( str ); // Bilbo;Gandalf;Nazgul
٠تد reduce/reduceRight
زÙ
اÙÛ Ú©Ù Ù
ا ÙÛØ§Ø² داشت٠باشÛÙ
ک٠در ÛÚ© آراÛÙ ØÙÙ٠بزÙÛÙ
Ø Ù
ÛâØªÙØ§ÙÛÙ
از forEachØ for ÛØ§ for..of Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
.
زÙ
اÙÛ Ú©Ù Ù
ا ÙÛØ§Ø² داشت٠باشÛÙ
در اÙÙ
اÙâÙØ§ ØÙÙ٠بزÙÛÙ
٠داد٠را Ø¨Ø±Ø§Û ÙØ± اÙÙ
ا٠برگرداÙÛÙ
Ø Ù
ÛâØªÙØ§ÙÛÙ
از map Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
.
Ù ØªØ¯ÙØ§Û arr.reduce Ù arr.reduceRight ÙÙ ÚÙÛ٠ب٠اÛ٠دست٠تعÙÙ Ø¯Ø§Ø±ÙØ¯Ø ا٠ا Ú©Ù Û Ù¾ÛÚÛØ¯ÙâØªØ± ÙØ³ØªÙد. Ø¢ÙÙØ§ Ø¨Ø±Ø§Û Ù ØØ§Ø³Ø¨Ù ÛÚ© Ù ÙØ¯Ø§Ø± بر اساس آراÛÙØ Ø§Ø³ØªÙØ§Ø¯Ù Ù ÛâØ´ÙÙØ¯.
سÛÙØªÚ©Ø³ اÛÙÚ¯ÙÙ٠است:
let value = arr.reduce(function(accumulator, item, index, array) {
// ...
}, [initial]);
تابع رÙÛ ØªÙ Ø§Ù Ø§Ù٠اÙâÙØ§Û آراÛ٠اع٠ا٠٠ÛâØ´ÙØ¯ Ù ÙØªÛØ¬Ù Ø®ÙØ¯ را Ø¨Ù ÙØ±Ø§Ø®ÙاÙÛ Ø¨Ø¹Ø¯Û Â«Ù ÙØªÙÙ Ù ÛâÚ©ÙØ¯Â».
آرگÙ٠اÙâÙØ§:
accumulatorâ ÙØªÛØ¬Ù ÙØ¨ÙÛ ÙØ±Ø§Ø®ÙاÙÛ ØªØ§Ø¨Ø¹ Ø§Ø³ØªØ Ø¯ÙØ¹Ù اÙ٠باinitialبرابر است (اگرinitialÙØ¬Ùد داشت٠باشد).itemâ Ø§Ù٠ا٠کÙÙÙÛ Ø¢Ø±Ø§Û٠است.indexâ Ù ÙÙØ¹Ûت آ٠است.arrayâ Ø¢Ø±Ø§Û٠است.
ÙÙ Ø§ÙØ·Ùر ک٠تابع اع٠ا٠٠ÛâØ´ÙØ¯Ø ÙØªÛØ¬Ù ÙØ±Ø§Ø®ÙاÙÛ ÙØ¨ÙÛ Ø¨Ù Ø¹ÙÙØ§Ù آرگÙ٠ا٠اÙÙ Ø¨Ù ÙØ±Ø§Ø®ÙاÙÛ Ø¨Ø¹Ø¯Û Ù ÙØªÙÙ Ù ÛâØ´ÙØ¯.
Ø¨ÙØ§Ø¨Ø±Ø§ÛÙØ اÙÙÛ٠آرگÙÙ
ا٠اساسا ÙÙ
Ø§Ù ØØ§ÙظÙâØ§Û Ø§Ø³Øª Ú©Ù ÙØªÛØ¬Ù ØªØ±Ú©ÛØ¨ شد٠تÙ
اÙ
ÙØ±Ø§Ø®ÙاÙÛâÙØ§Û ÙØ¨ÙÛ Ø±Ø§ Ø°Ø®ÛØ±Ù کرد٠است. ٠در Ù¾Ø§ÛØ§Ù تبدÛÙ Ø¨Ù ÙØªÛج٠reduce Ù
ÛâØ´ÙØ¯.
Ø¨ÙØ¸Ø± Ù¾ÛÚÛØ¯Ù Ù ÛâØ¢ÛØ¯Ø
Ø±Ø§ØØªâترÛÙ Ø±Ø§Ù Ø¨Ø±Ø§Û ÙÙÙ ÛØ¯Ù اÛÙ ÙØ¶ÛÙØ ØªÙØ³Ø· ٠ثا٠است.
اÛÙØ¬Ø§ ٠ا ØØ§ØµÙ ج٠ع ÛÚ© آراÛ٠را در ÛÚ© خط Ù ÛâÚ¯ÛØ±ÛÙ :
let arr = [1, 2, 3, 4, 5];
let result = arr.reduce((sum, current) => sum + current, 0);
alert(result); // 15
ØªØ§Ø¨Ø¹Û Ú©Ù Ø¨Ù reduce داد٠شد تÙÙØ§ از 2 آرگÙÙ
Ø§Ù Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙØ¯ Ú©Ù Ù
عÙ
ÙÙØ§ کاÙÛ Ø§Ø³Øª.
Ø¨ÛØ§ÛÛØ¯ Ø¬Ø²Ø¦ÛØ§Øª ÚÛØ²Û ک٠در ØØ§Ù Ø§ÙØ¬Ø§Ù است را ببÛÙÛÙ .
- در Ø§Ø¬Ø±Ø§Û Ø§ÙÙØ
sumبرابر با Ù ÙØ¯Ø§Ø±initialاست (آخرÛ٠آرگÙ٠اÙreduce)Ø Ú©Ù Ø¨Ø±Ø§Ø¨Ø± با0Ø§Ø³ØªØ ÙcurrentاÙÙÛ٠اÙ٠ا٠آراÛÙ Ø§Ø³ØªØ Ú©Ù Ø¨Ø±Ø§Ø¨Ø± با1است. پس ÙØªÛج٠تابع1است. - در Ø§Ø¬Ø±Ø§Û Ø¯ÙÙ
Ø
sum = 1Ø Ú©Ù Ù Ø§ اÙ٠ا٠دÙ٠آراÛÙ (2) را ب٠آ٠اضاÙ٠٠بر٠ÛâگرداÙÛÙ . - در Ø§Ø¬Ø±Ø§Û Ø³ÙÙ
Ø
sum = 3٠٠ا ÛÚ© اÙ٠ا٠دÛگر ب٠آ٠اضاÙÙ Ù ÛâÚ©ÙÛÙ Ùâ¦
گردش Ù ØØ§Ø³Ø¨Ù:
ÛØ§ ب٠شک٠ÛÚ© جدÙÙ Ú©Ù ÙØ± ردÛÙ ÙØ´Ø§ÙâØ¯ÙÙØ¯Ù ÛÚ© ÙØ±Ø§Ø®ÙاÙÛ ØªØ§Ø¨Ø¹ رÙÛ Ø§ÙÙ Ø§Ù Ø¨Ø¹Ø¯Û Ø¢Ø±Ø§Û٠است:
sum |
current |
ÙØªÛج٠| |
|---|---|---|---|
| ÙØ±Ø§Ø®ÙاÙÛ Ø§ÙÙ | 0 |
1 |
1 |
| ÙØ±Ø§Ø®ÙاÙÛ Ø¯ÙÙ | 1 |
2 |
3 |
| ÙØ±Ø§Ø®ÙاÙÛ Ø³ÙÙ | 3 |
3 |
6 |
| ÙØ±Ø§Ø®ÙاÙÛ ÚÙØ§Ø±Ù | 6 |
4 |
10 |
| ÙØ±Ø§Ø®ÙاÙÛ Ù¾ÙØ¬Ù | 10 |
5 |
15 |
اÛÙØ¬Ø§ ٠ا Ù ÛâØªÙØ§ÙÛÙ Ø¨Ù ØµÙØ±Øª Ø´ÙØ§Ù ببÛÙÛÙ Ú©Ù ÙØªÛØ¬Ù ÙØ±Ø§Ø®ÙاÙÛ ÙØ¨ÙÛ Ø¨Ù Ø§ÙÙÛ٠آرگÙÙ Ø§Ù ÙØ±Ø§Ø®ÙاÙÛ Ø¨Ø¹Ø¯Û ØªØ¨Ø¯ÛÙ Ù ÛâØ´ÙØ¯.
٠ا ÙÙ ÚÙÛÙ Ù ÛâØªÙØ§ÙÛÙ Ù ÙØ¯Ø§Ø± اÙÙÛ٠را ØØ°Ù Ú©ÙÛÙ :
let arr = [1, 2, 3, 4, 5];
// ØØ°Ù شد (بدÙÙ 0) reduce Ù
ÙØ¯Ø§Ø± اÙÙÛ٠از
let result = arr.reduce((sum, current) => sum + current);
alert( result ); // 15
ÙØªÛج٠Ûکسا٠است. ب٠دÙÛ٠اÛÙک٠اگر Ù
ÙØ¯Ø§Ø± اÙÙÛÙâØ§Û ÙØ¬Ùد ÙØ¯Ø§Ø´ØªÙ Ø¨Ø§Ø´Ø¯Ø Ø³Ù¾Ø³ reduce اÙÙÛ٠اÙÙ
ا٠آراÛ٠را ب٠عÙÙØ§Ù Ù
ÙØ¯Ø§Ø± اÙÙÛÙ Ø§ÙØªØ®Ø§Ø¨ Ù
ÛâÚ©ÙØ¯ Ù ØÙÙÙâØ²Ø¯Ù Ø±Ø§ از دÙÙ
Û٠اÙÙ
Ø§Ù Ø´Ø±ÙØ¹ Ù
ÛâÚ©ÙØ¯.
جدÙÙ Ù ØØ§Ø³Ø¨Ø§Øª ٠اÙÙØ¯ Ø¨Ø§ÙØ§ Ø§Ø³ØªØ Ù ÙØªÙا ردÛ٠اÙ٠را ÙØ¯Ø§Ø±Ø¯.
اÙ
ا Ø§Ø³ØªÙØ§Ø¯Ù کرد٠ب٠اÛÙ ØµÙØ±Øª Ø¨Ù Ø¯ÙØª Ø¨Ø³ÛØ§Ø± Ø¨Ø§ÙØ§ÛÛ ÙÛØ§Ø² دارد. اگر آراÛ٠خاÙÛ Ø¨Ø§Ø´Ø¯Ø Ø³Ù¾Ø³ ÙØ±Ø§Ø®ÙاÙÛ reduce بدÙÙ Ù
ÙØ¯Ø§Ø± اÙÙÛÙ Ø§Ø±ÙØ± Ù
ÛâØ¯ÙØ¯.
ÛÚ© ٠ثا٠اÛÙØ¬Ø§ دارÛÙ :
let arr = [];
// Error: Reduce of empty array with no initial value
// .آ٠را Ø¨Ø±Ø§Û Ø¢Ø±Ø§Û٠خاÙÛ Ø¨Ø±Ù
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ reduce ØØ§Ú¯Ø± Ù
ÙØ¯Ø§Ø± اÙÙÛÙ ÙØ¬Ùد داشت
arr.reduce((sum, current) => sum + current);
Ø¨ÙØ§Ø¨Ø±Ø§ÛÙ ØªÙØµÛÙ Ù ÛâØ´ÙØ¯ ÙÙ ÛØ´Ù Ù ÙØ¯Ø§Ø± اÙÙÛ٠را تعÛÛÙ Ú©ÙÛØ¯.
٠تد arr.reduceRight کار Ûکسا٠را Ø§ÙØ¬Ø§Ù Ù ÛâÙØ¯Ø ا٠ا از راست ب٠ÚÙ¾.
##٠تد Array.isArray
آراÛÙâÙØ§ Ø´Ú©Ù Ø¬Ø¯ÛØ¯Û از اÙÙØ§Ø¹ داد٠را Ø´Ú©Ù ÙÙ ÛâØ¯ÙÙØ¯. Ø¢ÙÙØ§ بر اساس Ø´ÛØ¡Ùا ÙØ³ØªÙد.
Ø¨ÙØ§Ø¨Ø±Ø§ÛÙ typeof Ø¨Ø±Ø§Û ØªØ´Ø®ÛØµ ÛÚ© Ø´ÛØ¡ ساد٠از آراÛÙ Ú©Ù
Ú©Û ÙÙ
ÛâÚ©ÙØ¯:
alert(typeof {}); // object
alert(typeof []); // object (ÛکساÙ)
â¦Ø§Ù
ا آراÛÙâÙØ§ ب٠دÙÛ٠اÛÙÚ©Ù Ø§ØºÙØ¨ اÙÙØ§Øª Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙÙØ¯Ø ÛÚ© Ù
تد خاص Ø¨Ø±Ø§Û Ø§Û٠کار Ø¯Ø§Ø±ÙØ¯: Array.isArray(value). اÛÙ Ù
تد اگر value ÛÚ© آراÛ٠باشد true برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ ٠در ØºÛØ± اÛÙ ØµÙØ±Øª false.
alert(Array.isArray({})); // false
alert(Array.isArray([])); // true
اکثر Ù ØªØ¯ÙØ§ از âthisArgâ Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù ÛâÚ©ÙÙØ¯
ØªÙØ±Ûبا تÙ
اÙ
Ù
ØªØ¯ÙØ§Û آراÛÙ Ú©Ù ØªØ§Ø¨Ø¹Û Ø±Ø§ صدا Ù
ÛâØ²ÙÙØ¯ â Ù
اÙÙØ¯ findØ filterØ mapØ ÙÙ
ÚÙÛÙ ÛÚ© Ø§Ø³ØªØ«ÙØ§ از sortØ Ù¾Ø§Ø±Ø§Ù
تر Ø§Ø®ØªÛØ§Ø±Û اضاÙÛ thisArg را ÙØ¨ÙÙ Ù
ÛâÚ©ÙÙØ¯.
اÛ٠پارا٠تر ب٠دÙÛ٠اÛÙÚ©Ù Ø¨Ù ÙØ¯Ø±Øª Ø§Ø³ØªÙØ§Ø¯Ù Ù ÛâØ´ÙØ¯Ø در ÙØ³Ù تâÙØ§Û Ø¨Ø§ÙØ§ÛÛ Ú¯ÙØªÙ ÙØ´Ø¯. ا٠ا Ø¨Ø±Ø§Û Ú©Ø§Ù Ù Ø¨ÙØ¯Ù ٠ا Ø¨Ø§ÛØ¯ آ٠را Ù¾ÙØ´Ø´ دÙÛÙ .
سÛÙØªÚ©Ø³ کا٠٠اÛÙ Ù ØªØ¯ÙØ§ در Ø²ÛØ± آ٠د٠است:
arr.find(func, thisArg);
arr.filter(func, thisArg);
arr.map(func, thisArg);
// ...
// آرگÙÙ
Ø§Ù Ø§Ø®ØªÛØ§Ø±Û آخر است thisArg
Ù
ÙØ¯Ø§Ø± thisArg Ø¨Ø±Ø§Û func برابر با this Ø®ÙØ§Ùد Ø¨ÙØ¯.
Ø¨Ø±Ø§Û Ù
Ø«Ø§ÙØ اÛÙØ¬Ø§ Ù
ا از Ù
تد Ø´ÛØ¡ army ب٠عÙÙØ§Ù ÛÚ© ÙÛÙØªØ± Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÛÙ
Ø Ù thisArg Ù
ØØªÙا را رد ٠بد٠Ù
ÛâÚ©ÙØ¯:
let army = {
minAge: 18,
maxAge: 27,
canJoin(user) {
return user.age >= this.minAge && user.age < this.maxAge;
}
};
let users = [
{age: 16},
{age: 20},
{age: 23},
{age: 30}
];
// برÙ
ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ را Ù¾ÛØ¯Ø§ Ú©Ù true Ø¨Ù Ø§Ø²Ø§Û Ø¢ÙÙØ§ army.canJoin ÙØ§ÛÛ Ú©Ùuser
let soldiers = users.filter(army.canJoin, army);
alert(soldiers.length); // 2
alert(soldiers[0].age); // 20
alert(soldiers[1].age); // 23
اگر در Ù
Ø«Ø§Ù Ø¨Ø§ÙØ§ Ù
ا از users.filter(army.canJoin) Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâکردÛÙ
Ø Ø³Ù¾Ø³ army.canJoin ب٠عÙÙØ§Ù ÛÚ© تابع جداگاÙ٠صدا زد٠Ù
ÛâØ´Ø¯ Ú©Ù this=undefinedØ Ø¨ÙØ§Ø¨Ø±Ø§Û٠درجا ب٠ÛÚ© Ø§Ø±ÙØ± برÙ
ÛâØ®ÙØ±Ø¯ÛÙ
.
صدازد٠users.filter(army.canJoin, army) Ù
ÛâØªÙØ§Ùد با users.filter(user => army.canJoin(user)) جاÛگزÛÙ Ø´ÙØ¯Ø Ú©Ù ÙØ±Ø¯Ù ÛÚ©Ø³Ø§Ù ÙØ³ØªÙد. ÙÙØ¹ دÙÙ
Ø¨ÛØ´ØªØ± Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙØ¯Ø ÚÙÙ Ø¨Ø±Ø§Û Ø§Ú©Ø«Ø± Ù
ردÙ
Ù
ÙØ¯Ø§Ø±Û ÙØ§Ø¨Ù ÙÙÙ
âØªØ± است.
Ø®ÙØ§ØµÙ
برگ تÙÙØ¨Û از Ù ØªØ¯ÙØ§Û آراÛÙ:
-
Ø¨Ø±Ø§Û Ø§Ø¶Ø§ÙÙ/ØØ°Ù کرد٠اÙ٠اÙâÙØ§:
push(...items)â Ø§Ù٠اÙâÙØ§ را ب٠آخر اضاÙÙ Ù ÛâÚ©ÙØ¯Øpop()â ÛÚ© اÙ٠ا٠را از آخر ØØ°Ù Ù ÛâÚ©ÙØ¯Øshift()â ÛÚ© اÙ٠ا٠را از آغاز ØØ°Ù Ù ÛâÚ©ÙØ¯Øunshift(...items)â Ø§Ù٠اÙâÙØ§ÛÛ Ø±Ø§ ب٠آغاز اضاÙÙ Ù ÛâÚ©ÙØ¯.splice(pos, deleteCount, ...items)â Ø¯Ø± اÛÙØ¯Ú©Ø³posب٠تعدادdeleteCountاÙÙ Ø§Ù ØØ°Ù Ùitemsرا اضاÙÙ Ù ÛâÚ©ÙØ¯.slice(start, end)â Ø¨Ø§ ساخت٠ÛÚ© آراÛÙ Ø¬Ø¯ÛØ¯Ø اÙ٠اÙâÙØ§ را از اÛÙØ¯Ú©Ø³startتاend(شا٠٠ÙÙ ÛâØ´ÙØ¯) در Ø¢Ù Ú©Ù¾Û Ù ÛâÚ©ÙØ¯.concat(...items)â ÛÚ© آراÛÙ Ø¬Ø¯ÛØ¯ را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯: ت٠ا٠عضÙÙØ§Û آراÛÙ Ú©ÙÙÙÛ Ø±Ø§ Ú©Ù¾Û Ù ÛâÚ©ÙØ¯ Ùitemsرا ب٠آ٠اضاÙÙ Ù ÛâÚ©ÙØ¯. اگر ÙØ± کدا٠ازitemsآراÛÙ Ø¨Ø§Ø´Ø¯Ø Ø³Ù¾Ø³ اÙ٠اÙâÙØ§Û آ٠اضاÙÙ Ù ÛâØ´ÙÙØ¯.
-
Ø¨Ø±Ø§Û Ø¬Ø³ØªØ¬Ù Ø¯Ø± بÛ٠اÙ٠اÙâÙØ§:
indexOf/lastIndexOf(item, pos)â Ø¨Ø§ Ø´Ø±ÙØ¹ از Ù ÙÙØ¹ÛتposØ¨Ù Ø¯ÙØ¨Ø§ÙitemÙ ÛâÚ¯Ø±Ø¯Ø¯Ø Ø§ÛÙØ¯Ú©Ø³ آ٠را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ ٠در ØµÙØ±ØªÛ Ú©Ù Ù¾ÛØ¯Ø§ ÙØ´Ùد1-را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.includes(value)â Ø§Ú¯Ø± آراÛ٠داراÛvalueØ¨Ø§Ø´Ø¯Ø Ù ÙØ¯Ø§Ø±trueرا بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ در ØºÛØ± اÛÙ ØµÙØ±Øªfalse.find/filter(func)â Ø§Ù٠اÙâÙØ§ را از طرÛ٠تابع ÙÛÙØªØ± Ù ÛâÚ©ÙØ¯Ø اÙÙÛÙ/ØªÙ Ø§Ù Ù ÙØ¯Ø§Ø±ÙاÛÛ Ú©Ù Ø³Ø¨Ø¨ Ù ÛâØ´ÙÙØ¯ تابعtrueØ¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯ را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.findIndex٠اÙÙØ¯findاست ا٠ا Ø¨Ù Ø¬Ø§Û Ù ÙØ¯Ø§Ø± اÛÙØ¯Ú©Ø³ را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.
-
Ø¨Ø±Ø§Û ØÙÙ٠زد٠در ÛÚ© آراÛÙ:
forEach(func)â Ø¨Ø±Ø§Û ت٠ا٠اÙ٠اÙâÙØ§ تابعfuncرا صدا Ù ÛâØ²ÙØ¯Ø ÚÛØ²Û را برÙÙ ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.
-
Ø¨Ø±Ø§Û ØªØºÛÛØ± Ø´Ú©Ù ÛÚ© آراÛÙ:
map(func)â Ø§Ø² ÙØªØ§Ûج صدازدÙfuncØ¨Ø±Ø§Û ÙØ± اÙÙ Ø§ÙØ ÛÚ© آراÛÙ Ø¬Ø¯ÛØ¯ Ù ÛâØ³Ø§Ø²Ø¯.sort(func)â Ø¢Ø±Ø§Û٠را در Ù ØÙ ٠رتب Ù ÛâÚ©ÙØ¯Ø سپس آ٠را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.reverse()â Ø¢Ø±Ø§Û٠را در Ù ØÙ برعکس Ù ÛâÚ©ÙØ¯Ø سپس آ٠را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.split/joinâ ÛÚ© رشت٠را ب٠آراÛ٠تبدÛÙ Ù ÛâÚ©ÙØ¯ ٠برعکس.reduce/reduceRight(func, initial)â Ø¨Ø§ صدا زدÙfuncØ¨Ø±Ø§Û ÙØ± اÙ٠ا٠٠رد ٠بد٠کرد٠ÛÚ© ÙØªÛØ¬Ù ÙØ§Ø³Ø·Ù بÛÙ ÙØ± ÙØ±Ø§Ø®ÙاÙÛØ ÛÚ© Ù ÙØ¯Ø§Ø± Ù ÙØ±Ø¯ را در آراÛÙ Ù ØØ§Ø³Ø¨Ù Ù ÛâÚ©ÙØ¯.
-
Ø¹ÙØ§Ù٠بر اÛÙ:
Array.isArray(arr)Ø¨Ø±Ø±Ø³Û Ù ÛâÚ©ÙØ¯ Ú©ÙarrÛÚ© آراÛ٠باشد ٠اگر Ø¨ÙØ¯ Ù ÙØ¯Ø§Ø±trueرا بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ در ØºÛØ± اÛÙ ØµÙØ±Øªfalse.
ÙØ·Ùا در ÙØ¸Ø± Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ Ú©Ù Ù
ØªØ¯ÙØ§Û sortØ reverse Ù splice Ø®ÙØ¯ آراÛ٠را تغÛÛØ± Ù
ÛâØ¯ÙÙØ¯.
Ù ØªØ¯ÙØ§Û ذکر Ø´Ø¯Ù Ø¨ÛØ´ØªØ±ÛÙ Ø§Ø³ØªÙØ§Ø¯Ù را Ø¯Ø§Ø±ÙØ¯Ø Ø¢ÙÙØ§ 99% Ù ÙØ§Ø±Ø¯ Ø§Ø³ØªÙØ§Ø¯Ù را Ù¾ÙØ´Ø´ Ù ÛâØ¯ÙÙØ¯. ا٠ا ÚÙØ¯ ٠تد دÛگر ÙÙ ÙØ³Øª:
-
arr.some(fn)/arr.every(fn) آراÛ٠را Ø¨Ø±Ø±Ø³Û Ù ÛâÚ©ÙÙØ¯.
تابع
fnر٠ت٠ا٠اÙ٠اÙâÙØ§Û آراÛ٠صدا زد٠٠ÛâØ´ÙØ¯ درست شبÛÙmap. اگر ØªÙ Ø§Ù ÙØªØ§ÛجtrueØ¨ÙØ¯Ø Ù ÙØ¯Ø§Ø±trueرا بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯Ø در ØºÛØ± اÛÙ ØµÙØ±Øªfalse.اÛÙ Ù ØªØ¯ÙØ§ ØªÙØ±Ûبا شبÛ٠ع٠ÙÚ¯Ø±ÙØ§Û
||Ù&&Ø±ÙØªØ§Ø± Ù ÛâÚ©ÙÙØ¯: اگرfnÙ ÙØ¯Ø§Ø± truthy را Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Øarr.some()درجاtrueرا بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ Ù ØÙÙ٠زد٠رÙÛ Ø¨ÙÛ٠اÙ٠اÙâÙØ§ را ٠تÙÙÙ Ù ÛâÚ©ÙØ¯Ø اگرfnÛÚ© Ù ÙØ¯Ø§Ø± falsy Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Øarr.every()ÙÙØ±Ø§falseرا بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ Ù ØÙÙ٠زد٠در بÙÛ٠اÙ٠اÙâÙØ§ را ٠تÙÙÙ Ù ÛâÚ©ÙØ¯.٠ا Ù ÛâØªÙØ§ÙÛ٠از
everyØ¨Ø±Ø§Û Ù ÙØ§Ûس٠آراÛÙâÙØ§ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙfunction arraysEqual(arr1, arr2) { return arr1.length === arr2.length && arr1.every((value, index) => value === arr2[index]); } alert( arraysEqual([1, 2], [1, 2])); // true -
arr.fill(value, start, end) â Ø¢Ø±Ø§Û٠را با Ù ÙØ¯Ø§Ø± تکرار Ø´ÙÙØ¯Ù
valueاز اÛÙØ¯Ú©Ø³startتاendپر Ù ÛâÚ©ÙØ¯. -
arr.copyWithin(target, start, end) â Ø§Ù٠اÙâÙØ§Û Ø®ÙØ¯ را از Ù ÙÙØ¹Ûت
startتا Ù ÙÙØ¹Ûتendدر Ø®ÙØ¯Ø´ ٠در Ù ÙÙØ¹ÛتtargetÚ©Ù¾Û Ù ÛâÚ©ÙØ¯ (جاÛگزÛ٠اÙÙ Ø§Ù Ù ÙØ¬Ùد Ù ÛâØ´ÙØ¯). -
arr.flat(depth)/arr.flatMap(fn) آراÛÙâØ§Û ÛÚ© دست را از آراÛÙâØ§Û ÚÙØ¯ Ø¨Ø¹Ø¯Û Ù ÛâØ³Ø§Ø²ÙØ¯.
Ø¨Ø±Ø§Û Ø¯ÛØ¯Ù ÙÛØ³Øª Ú©Ø§Ù ÙØ از راÙÙ٠ا Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯.
با اÙÙÛÙ Ùگا٠٠٠ک٠است Ø¨Ù ÙØ¸Ø± برسد Ú©Ù Ù ØªØ¯ÙØ§Û Ø¨Ø³ÛØ§Ø± Ø²ÛØ§Ø¯Û ÙØ¬Ùد دارد Ù Ø¨Ù ØØ§Ùظ٠سپرد٠آÙÙØ§ ٠شک٠است. ا٠ا در ÙØ§Ùع Ø¨Ø³ÛØ§Ø± آساÙâØªØ± است.
Ø¨Ø±Ø§Û Ø¯Ø§Ø´ØªÙ Ø´ÙØ§Ø®Øª از Ø¢ÙÙØ§ ب٠برگ٠تÙÙØ¨ ÙÚ¯Ø§Ù Ø¨ÛØ§ÙØ¯Ø§Ø²ÛØ¯. سپس تکÙÛÙâÙØ§Û اÛÙ ÙØµÙ را Ø¨Ø±Ø§Û ØªÙ Ø±ÛÙ Ø§ÙØ¬Ø§Ù دÙÛØ¯ تا ÙØ³Ø¨Øª Ø¨Ù Ù ØªØ¯ÙØ§Û آراÛ٠تجرب٠بدست Ø¨ÛØ§ÙØ±ÛØ¯.
پس از Ø¢Ù ÙØ± Ù ÙÙØ¹ Ú©Ù ÙÛØ§Ø² Ø¯Ø§Ø´ØªÛØ¯ با ÛÚ© آراÛÙ Ú©Ø§Ø±Û Ø§ÙØ¬Ø§Ù دÙÛØ¯Ø Ù ÙÙ ÛâØ¯Ø§ÙÛØ¯ ÚÚ¯ÙÙÙØ ب٠اÛÙ ØµÙØÙ Ø¨ÛØ§ÛÛØ¯Ø ب٠برگ٠تÙÙØ¨ ÙگاÙÛ Ø¨ÛØ§ÙØ¯Ø§Ø²ÛØ¯ ٠٠تد Ù ÙØ§Ø³Ø¨ را Ù¾ÛØ¯Ø§ Ú©ÙÛØ¯. ٠ثاÙâÙØ§ ب٠ش٠ا در ÙÙØ´ØªÙ درست Ø¢Ù Ú©Ù Ú© Ù ÛâÚ©ÙÙØ¯. Ø¨Ù Ø²ÙØ¯Û Ø¨Ù Ø·ÙØ± Ø®ÙØ¯Ú©Ø§Ø± ش٠ا Ù ØªØ¯ÙØ§ را Ø¨Ù ØØ§Ùظ٠٠ÛâØ³Ù¾Ø§Ø±ÛØ¯Ø بدÙÙ ØªÙØ§Ø´ Ø®Ø§ØµÛ Ø§Ø² Ø¬Ø§ÙØ¨ Ø®ÙØ¯ØªØ§Ù.
ÙØ¸Ø±Ø§Øª
<code>Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø Ø¨Ø±Ø§Û ÚÙØ¯Û٠خط â کد را درÙ٠تگ<pre>ÙØ±Ø§Ø± دÙÛØ¯Ø Ø¨Ø±Ø§Û Ø¨ÛØ´ از د٠خط کد â Ø§Ø² ÛÚ© جعبÙÙ Ø´ÙÛ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. (plnkrØ jsbinØ codepenâ¦)