Я попытался использовать слияние и расширение для объединения массивов внутри опции ajax для автозаполнения - виджета пользовательского интерфейса автозаполнения jQuery.Они оба работают, но не так, как они должны.В приведенном ниже коде с использованием extend () в раскрывающемся списке отображается только содержимое objectB.Если я переверну порядок аргументов, отобразится только objectA, т.е. отобразится второй аргумент, но не комбинация с первым.Когда я изменяю его на слияние (objectA, objectB), отображается только содержимое objectA.При использовании merge () отображается только первый аргумент, но не комбинация обоих.Как получить объединенное содержимое обоих массивов для отображения?(В конце концов, objectB будет совершенно другим, но я просто пытаюсь заставить концепцию работать.)
$.ajax(
{
url: "http://ws.geonames.org/searchJSON",
dataType: "jsonp",
data: geonamesData,
success: function( data )
{ var objectA=null;
var objectB=null;
var objectC=null;
response( $.map( data.geonames, function( item )
{ objectA={
label: item.name + (item.adminName2 ? ", " + item.adminName2 : "") + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
value: item.name + (item.adminName2 ? ", " + item.adminName2 : "") + (item.adminName1 ? ", " + item.adminName1 : ""),
name: item.name
};
objectB={
label: item.name + (item.adminName2 ? ", " + item.adminName2 : ""),
value: item.name + (item.adminName2 ? ", " + item.adminName2 : ""),
name: item.name
};
objectC=$.extend({},objectA, objectB);
return objectC;
}));
}
});