.indexOf()
संभालने
var utils = {};
/**
* utils.isArray
*
* Best guess if object is an array.
*/
utils.isArray = function(obj) {
// do an instanceof check first
if (obj instanceof Array) {
return true;
}
// then check for obvious falses
if (typeof obj !== 'object') {
return false;
}
if (utils.type(obj) === 'array') {
return true;
}
return false;
};
/**
* utils.type
*
* Attempt to ascertain actual object type.
*/
utils.type = function(obj) {
if (obj === null || typeof obj === 'undefined') {
return String (obj);
}
return Object.prototype.toString.call(obj)
.replace(/\[object ([a-zA-Z]+)\]/, '$1').toLowerCase();
};
आप तो यदि एक वस्तु एक सरणी में है की जांच करना चाहते हैं, तो मैं भी इस कोड को शामिल किया जाएगा लागू किया गया है
Object.defineProperty(Array.prototype,'has',
{
value:function(o, flag){
if (flag === undefined) {
return this.indexOf(o) !== -1;
} else { // only for raw js object
for(var v in this) {
if(JSON.stringify(this[v]) === JSON.stringify(o)) return true;
}
return false;
},
// writable:false,
// enumerable:false
})
!!! Array.prototype.has=function(){...
मत बनाओ क्योंकि आप प्रत्येक सरणी में एक संख्यात्मक तत्व जोड़ देंगे और जेएस टूटा हुआ है।
//use like
[22 ,'a', {prop:'x'}].has(12) // false
["a","b"].has("a") // true
[1,{a:1}].has({a:1},1) // true
[1,{a:1}].has({a:1}) // false
संदर्भ की बजाय मूल्य से 2 आर्ग (झंडा) बलों comparation के उपयोग
देखें: http://stackoverflow.com/a/25765186/1320932 –
2 बातें: 1.) 'शामिल' एक ऐसे फ़ंक्शन के लिए वास्तव में एक बुरा नाम है जो किसी भी स्थिति को संशोधित नहीं करता है। यह एक ऐसे फ़ंक्शन के लिए विशेष रूप से खराब है जो बस बुलियन लौटाता है। 2.) आपको "वापसी (झूठी) जोड़ने की जरूरत है;" समारोह के अंत से पहले। – Aquarelle
ईसीएमएस्क्रिप्ट 2016 के रूप में, आप Array.prototype.includes फ़ंक्शन का उपयोग कर सकते हैं: myArray.includes (3); // true – mhd