在一个对象数组中查找一个指定的对象是否存在

function find(list, elem) {
  for (let i = 0; i < list.length; i++) {
    let flag = true;
    let current = list[i];
    for (key in current) {
      if (elem[key] !== current[key]) {
        flag = false;
        break;
      }
    }
    if (flag) {
      return i;
    }
  }
  return -1;
}
console.log(find(cities, city));

 

注意:这里对象相等的依据不是引用指向的是同一块内存,而仅仅要求二者的数值相等就能够。code