@quirimmo предложил короткий код. Я предлагаю быстрый код.
var id = 3;
var obj = {
id: 3,
name: "test"
}
let arr = [{
name: "dd",
id: 1
}, {
name: "dzxcd",
id: 3
}, {
name: "nav",
id: 5
}, {
name: "hhh",
id: 4
}]
var arr2 = [...arr];
console.time('⏱');
arr.splice(arr.findIndex(({id}) => id === obj.id), 0, obj);
console.timeEnd('⏱');
console.time('⏱');
for (let item of arr2) {
if (item.id === id) {
item.name = obj.name;
break;
}
}
console.timeEnd('⏱');
console.log(arr2);
Я думаю, что решение найдено здесь: http://ui.jquery.com/demos/sortable/#connect-lists
и его сделанный что-то вроде этого:
$(function() {
$("#sortable1, #sortable2").sortable({
connectWith: ['.connectedSortable']
});
});