9

के साथ इंडेक्स() विधि समस्या ढूँढें मैं differents ब्राउज़र के साथ कुछ परीक्षण कर रहा हूं। मैं उस सेलेनियम :: रिमोट :: ड्राइवर के लिए उपयोग कर रहा हूं। मैं यह जांचना चाहता हूं कि मुझे अपनी वेबसाइट सूची में कुछ आइटम मिल गया है, एक ढांचे जेएस से सूची (जो ग्रिड बनाता है)। इस मामले के लिए, मुझे सेलेनियम :: रिमोट :: ड्राइवर द्वारा अनुमत जावास्क्रिप्ट स्निपेट का उपयोग करना होगा।इंटरनेट एक्सप्लोरर

$script = q{ 
     var paramProgramName = arguments[0]; 
     var list = $('#c-list').dxList('instance'); 
     var items = list.option('items'); 
     var index = items.findIndex(function(el){ return el.name==paramProgramName; }); 
     list.selectItem(index); 
     return ; 
}; 
$driver->execute_script($script,$programName); 

यह क्रोम और फ़ायरफ़ॉक्स के साथ ठीक काम करता है: मैं कोड निम्नलिखित था। मेरी समस्या यह है कि मेरा कोड internet.explorer के साथ काम नहीं करता है क्योंकि findIndex() विधि केवल i.e 12 और निम्न द्वारा समर्थित है। और कुछ कारणों से मुझे Internet.explorer का उपयोग करना है 11.

तो मेरा सवाल यह है कि मैं प्रत्येक ब्राउज़र के लिए अपनी अनुक्रमणिका प्राप्त करने के लिए अलग-अलग कैसे कर सकता हूं?

धन्यवाद

उत्तर

29

तो मेरे सवाल का मैं कैसे अलग ढंग से कर सकते हैं कि हर ब्राउज़र के लिए अपनी सूचकांक पाने के लिए है?

आपको कम से कम तीन विकल्प हैं:

  1. शिम Array#findIndex; MDN में एक शिम/पॉलीफिल है जिसका आप उपयोग कर सकते हैं। इस तरह के for रूप

    var index = -1; 
    items.some(function(el, i) { 
        if (el.name == paramProgramName) { 
         index = i; 
         return true; 
        } 
    }); 
    
  2. उपयोग कुछ और भी IE8 है,:

  3. उपयोग इस तरह के Array#some के रूप में कुछ और IE11 है,

    var index = -1; 
    for (var i = 0; i < items.length; ++i) { 
        if (items[i].name == paramProgramName) { 
         index = i; 
         break; 
        } 
    } 
    
+0

उत्तर @ टीजे के लिए धन्यवाद। पहले पाउडर! मैं शिम के साथ बहुत familar नहीं हूँ लेकिन मैं वैसे भी एक नज़र रखना होगा। दूसरी तरफ, मैं इसका परीक्षण करूंगा और मैं आपको जवाब दूंगा। – Chaoui05

+0

यह सही है। धन्यवाद फिर से – Chaoui05

+0

:)। हॊ गया ! यह मेरे सवाल का जवाब दिया – Chaoui05

0

एक बेहतर तरीका:

var findArrayIndex = function (array, predicateFunction) { 
    var length = array == null ? 0 : array.length; 
    if (!length) { 
     return -1; 
    } 
    var index = -1; 
    for (var i = 0; i < array.length; ++i) { 
     if(predicateFunction(array[i])) { 
      index = i; 
      break; 
     } 
    } 
    return index; 
} 

उपयोग:

findArrayIndex(cachedAnnouncementsArray, function(o){return o.ID == 17;}); 
संबंधित मुद्दे