qzm
4/17/2017 - 6:58 AM

简单的indexOf搜索

简单的indexOf搜索

/**
 * Check if two values are loosely equal - that is,
 * if they are plain objects, do they have the same shape?
 */
function looseEqual(a, b) {
    var isObjectA = Object.prototype.toString.call(a) === '[object Object]';
    var isObjectB = Object.prototype.toString.call(b) === '[object Object]';
    if (isObjectA && isObjectB) {
        return JSON.stringify(a) === JSON.stringify(b)
    } else if (!isObjectA && !isObjectB) {
        return String(a) === String(b)
    } else {
        return false
    }
}

function looseIndexOf (arr, val) {
  for (var i = 0; i < arr.length; i++) {
    if (looseEqual(arr[i], val)) { return i }
  }
  return -1
}