На основании ответа @ YOU, но сохраняя порядок:
var arr3 = [];
for(var i in arr1){
var shared = false;
for (var j in arr2)
if (arr2[j].name == arr1[i].name) {
arr3.push(arr1[j]
shared = true;
break;
}
if(!shared) arr3.push(arr1[i])
}
for(var j in arr2){
var shared = false;
for (var i in arr1)
if (arr2[j].name == arr1[i].name) {
shared = true;
break;
}
if(!shared) arr3.push(arr2[j])
}
arr3
Я знаю, что это решение менее эффективно, но оно необходимо, если вы хотите сохранить порядок и все еще обновлять объекты.
Вот так:
if (str.indexOf("Yes") >= 0)
... или вы можете использовать оператор тильды:
if (~str.indexOf("Yes"))
Это работает, потому что indexOf ()
возвращает -1
, если строка вообще не найдена.
Обратите внимание, что здесь учитывается регистр.
Если вам нужен поиск без учета регистра, вы можете написать
if (str.toLowerCase().indexOf("yes") >= 0)
Или,
if (/yes/i.test(str))
Вы можете использовать search или match для этого .
str.search ('Yes')
вернет позицию совпадения или -1, если оно не найдено.