Есть массив обьектов fruits, из которого, обьекты могут добавляются в массив selected.
let fruits = [{Id: 1, Name: 'Apple'}, {Id: 2, Name: 'Pear'},
{ Id: 3, Name: 'Orange'}, { Id: 4, Name: 'Plum'}, { Id: 5, Name: 'Cherry'}];
let selected = [{Id: 3, Name: 'Orange'}];
Как сделать, чтобы обьекты из fruits не добавлялись в selected, если там уже есть похожий обьект. Например, чтобы в selected больше не добавлялся обьект с Id = 3, а добавились все остальные? Важна поддержка IE.
let fruits = [
{ Id: 1, Name: 'Apple' },
{ Id: 2, Name: 'Pear' },
{ Id: 3, Name: 'Orange' },
{ Id: 4, Name: 'Plum' },
{ Id: 5, Name: 'Cherry' }
];
let selected = [{Id: 3, Name: 'Orange'}];
function addUniqueIds(src, dst) {
var lookup = {};
for (var i = 0; i < dst.length; i++) {
lookup[dst[i].Id] = true;
}
for (var i = 0; i < src.length; i++) {
if (!lookup[src[i].Id]) {
lookup[src[i].Id] = true;
dst.push(src[i]);
}
}
}
addUniqueIds(fruits, selected);
console.log(selected.length, selected);
А если вдруг кому не так важна поддержка ie, то вот:
1. Если порядок полей не меняется
const fruits = [{Id: 1, Name: 'Apple'}, {Id: 2, Name: 'Pear'}, { Id: 3, Name: 'Orange'}, { Id: 4, Name: 'Plum'}, { Id: 5, Name: 'Cherry'}];
const selected = [{Id: 3, Name: 'Orange'}];
const newSelect = selected.map((item) => JSON.stringify(item));
const result = fruits.reduce((acc, item) => {
if(!newSelect.includes(JSON.stringify(item))) {
return acc.concat(item);
}
return acc;
}, selected)
console.log(result)
2. Если порядок полей меняется (замечание от @n3r0bi0m4n)
const fruits = [{Id: 1, Name: 'Apple'}, {Id: 2, Name: 'Pear'}, { Id: 3, Name: 'Orange'}, { Id: 4, Name: 'Plum'}, { Id: 5, Name: 'Cherry'}];
const selected = [{Name: 'Orange', Id: 3}, {Name: 'Pear', Id: 2}];
const newSelect = selected.map((item) => (item.Id));
const result = fruits.reduce((acc, item) => {
if(!newSelect.includes(item.Id)) {
return acc.concat(item);
}
return acc;
}, selected)
console.log(result)
Имеется на данный момент 2 сервера с установленными mariadb В данный момент базы объединены в Galera cluster
Использую redbeanphpПодскажите пожалуйста, вот есть массив данных(разные слова) в переменной dataStrings и нужно найти все совпадения в базе данных...
Не отображает иконку SVGЕсли задать bacgkround-image, то иконка отображается (т