الفرق بين المراجعتين ل"JavaScript/Array/lastIndexOf"
ط (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}') |
|||
سطر 113: | سطر 113: | ||
* معيار [http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.lastindexof ECMAScript 2015 (6th Edition)]. | * معيار [http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.lastindexof ECMAScript 2015 (6th Edition)]. | ||
* معيار [http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.15 ECMAScript 5.1]. | * معيار [http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.15 ECMAScript 5.1]. | ||
− | [[تصنيف:JavaScript]] | + | [[تصنيف:JavaScript|{{SUBPAGENAME}}]] |
− | [[تصنيف:JavaScript Global Objects]] | + | [[تصنيف:JavaScript Global Objects|{{SUBPAGENAME}}]] |
− | [[تصنيف:JavaScript Array]] | + | [[تصنيف:JavaScript Array|{{SUBPAGENAME}}]] |
المراجعة الحالية بتاريخ 15:36، 28 يناير 2018
الدالة Array.prototype.lastIndexOf()
تعيد آخر فهرس للعنصر الموجود في الدالة والذي يساوي القيمة المُحدَّدة، أو القيمة -1 إن لم يُعثَر على مُطابَقة.
var animals = ['Dodo', 'Tiger', 'Penguin', 'Dodo'];
console.log(animals.lastIndexOf('Dodo')); // 3
console.log(animals.lastIndexOf('Tiger')); // 1
البنية العامة
arr.indexOf(searchElement[, fromIndex])
searchElement
العنصر الذي نريد البحث عنه.
fromIndex
الفهرس الذي نريد البدء منه في البحث عن searchElement
، والقيم السالبة ستؤدي إلى بدء البحث من الفهرس array.length + fromIndex
تصاعديًا. القيمة الافتراضية هي 0.
القيمة المعادة
آخر فهرس للعنصر الذي عُثَر عليه، أو -1 إذا لم يعثر على مطابقة.
الوصف
الدالة indexOf
تُقارِن searchElement
بعناصر المصفوفة باستخدام معامل المطابقة (أي ===
).
أمثلة
استخدام lastIndexOf
المثال الآتي يستخدم الدالة lastIndexOf
للعثور على قيم في المصفوفة:
var numbers = [2, 5, 9, 2];
numbers.lastIndexOf(2); // 3
numbers.lastIndexOf(7); // -1
numbers.lastIndexOf(2, 3); // 3
numbers.lastIndexOf(2, 2); // 0
numbers.lastIndexOf(2, -2); // 0
numbers.lastIndexOf(2, -1); // 3
العثور على جميع الفهارس التي تحتوي على العنصر المحدد
var indices = [];
var array = ['a', 'b', 'a', 'c', 'a', 'd'];
var element = 'a';
var idx = array.lastIndexOf(element);
while (idx != -1) {
indices.push(idx);
idx = (idx > 0 ? array.lastIndexOf(element, idx - 1) : -1);
}
console.log(indices);
// [4, 2, 0]
لاحظ أنَّنا تعاملنا مع الحالة idx == 0
بطريقة مختلف هنا، لأنَّ العنصر سيُعثَر عليه بغض النظر عن قيمة المعامل fromIndex
وذلك إذا كان أوّل عنصر في المصفوفة؛ وهذا يختلف عن الدالة indexOf
.
تعويض نقص دعم المتصفحات
أضيفت الدالة lastIndexOf
في الإصدار الخامس من معيار ECMAScript، لذا يمكنك استخدام الشيفرة الآتية لإضافة دعم لهذه الدالة إن لم تكن متوافرةً في المتصفح:
// Production steps of ECMA-262, Edition 5, 15.4.4.15
// Reference: http://es5.github.io/#x15.4.4.15
if (!Array.prototype.lastIndexOf) {
Array.prototype.lastIndexOf = function(searchElement /*, fromIndex*/) {
'use strict';
if (this === void 0 || this === null) {
throw new TypeError();
}
var n, k,
t = Object(this),
len = t.length >>> 0;
if (len === 0) {
return -1;
}
n = len - 1;
if (arguments.length > 1) {
n = Number(arguments[1]);
if (n != n) {
n = 0;
}
else if (n != 0 && n != (1 / 0) && n != -(1 / 0)) {
n = (n > 0 || -1) * Math.floor(Math.abs(n));
}
}
for (k = n >= 0 ? Math.min(n, len - 1) : len - Math.abs(n); k >= 0; k--) {
if (k in t && t[k] === searchElement) {
return k;
}
}
return -1;
};
}
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | نعم | نعم | 9 | نعم | نعم |
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).
- معيار ECMAScript 5.1.