यह कोड इंटरनेट एक्सप्लोरर में काम नहीं करता है। कोई विकल्प?
"abcde".includes("cd")
यह कोड इंटरनेट एक्सप्लोरर में काम नहीं करता है। कोई विकल्प?
"abcde".includes("cd")
जवाबों:
String.prototype.includes जैसा कि आप लिखते हैं, इंटरनेट एक्सप्लोरर (या ओपेरा) में समर्थित नहीं है।
इसके बजाय आप उपयोग कर सकते हैं String.prototype.indexOf। #indexOfस्ट्रिंग में होने पर सबस्ट्रिंग के पहले वर्ण का इंडेक्स देता है, अन्यथा यह वापस आ जाता है -1। (ऐरे समतुल्य के समान)
var myString = 'this is my string';
myString.indexOf('string');
// -> 11
myString.indexOf('hello');
// -> -1
MDN का includesउपयोग करने के लिए एक पॉलीफ़िल है indexOf: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes#Polyfill
EDIT: ओपेरा 28 संस्करण केincludes रूप में समर्थन करता है ।
EDIT 2: एज के वर्तमान संस्करण विधि का समर्थन करते हैं। (2019 तक)
Boolean, हम कर सकते हैं(myString.indexOf('string') > -1) // to get a boolean true or false
या सिर्फ एक जावास्क्रिप्ट फ़ाइल में यह रखो और एक अच्छा दिन है :)
String.prototype.includes = function (str) {
var returnValue = false;
if (this.indexOf(str) !== -1) {
returnValue = true;
}
return returnValue;
}
for...inइसके साथ न जोड़ें , String.prototype.includesअगर यह इस तरह से परिभाषित किया गया है, तो यह पुनरावृति करेगा ।
return this.indexOf(str) !== -1;
शामिल है () अधिकांश ब्राउज़रों द्वारा समर्थित नहीं है। आपके विकल्प या तो उपयोग करने के लिए हैं
MDN से -polyfill https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/includes
या उपयोग करने के लिए
-के सूचकांक()
var str = "abcde";
var n = str.indexOf("cd");
जो आपको n = 2 देता है
यह व्यापक रूप से समर्थित है।
for...in! , String.prototype.includesअगर आप इसे इस तरह परिभाषित करते हैं , तो यह पुनरावृत्ति करेगा ।
संकट:
इंटरनेट एक्सप्लोरर से नीचे (समाधान के बिना) चलाने की कोशिश करें और परिणाम देखें।
console.log("abcde".includes("cd"));
उपाय:
अब नीचे हल चलाएं और परिणाम की जांच करें
if (!String.prototype.includes) {//To check browser supports or not
String.prototype.includes = function (str) {//If not supported, then define the method
return this.indexOf(str) !== -1;
}
}
console.log("abcde".includes("cd"));
मुझे कोणीय 5 में काम करते समय भी यही समस्या थी। इसे सीधे पॉलीफ़िल लिखे बिना काम करने के लिए, बस निम्नलिखित लाइन को पॉलीफ़िल्स में जमा करें। फाइल:
import "core-js/es7/array"
इसके अलावा, tsconfig.jsonप्रासंगिक अनुभाग प्रासंगिक हो सकता है:
"lib": [
"es2017",
"dom"
],
प्रतिक्रिया के लिए:
import 'react-app-polyfill/ie11';
import 'core-js/es5';
import 'core-js/es6';
import 'core-js/es7';
के लिए मुद्दा हल - शामिल (), खोजें (), और इसी तरह ।।
यदि आप Array.prototype.include()जावास्क्रिप्ट का उपयोग करते रहना चाहते हैं, तो आप इस स्क्रिप्ट का उपयोग कर सकते हैं:
github-script-ie- इसमें
वह सम्मिलित है जो स्वचालित रूप से शामिल () मैच () फ़ंक्शन के लिए है यदि यह IE का पता लगाता है।
अन्य विकल्प हमेशा उपयोग कर रहा हैstring.match(Regex(expression))
इससे मेरा काम बनता है:
function stringIncludes(a, b) {
return a.indexOf(b) !== -1;
}
आप के साथ भी ऐसा ही कर सकते हैं !! और ~ ऑपरेटरों
var myString = 'this is my string';
!!~myString.indexOf('string');
// -> true
!!~myString.indexOf('hello');
// -> false
यहाँ दो ऑपरेटरों की व्याख्या (!! और ~)
क्या है !! (नहीं) जावास्क्रिप्ट में ऑपरेटर?
https://www.joezimjs.com/javascript/great-mystery-of-the-tilde/