JSFiddle - React, Tailwind, and code Playground
JavaScript
// Ошибка псевдопустого массива
function test() {
let taskObjects = []
let arrObj = [{
some: 1,
heh: 2,
changeStatus: "taskWasDeleted"
},
{
some: 2,
heh: 2,
changeStatus: "taskWasDeleted"
},
{
some: 3,
heh: 2,
changeStatus: "taskWasDeleted"
},
]
console.info(arrObj) // length === 0
console.info("arrObj.length: "+ arrObj.length) // length === 3
if (arrObj === null || arrObj.length === 0) {
arrObj = [{
some: `empty`,
heh: 1
}]
arrObj = taskObjects // Копируется массив как ссылка
} else {
taskObjects = arrObj
}
removeDeleted(taskObjects, "taskWasDeleted") // Тута три объекта удаляются
}
test()
function removeDeleted(arr, value) {
for (let i = 0; i < arr.length; i++) {
if (arr[i].changeStatus == value) {
arr.splice(i, 1)
i--
}
}
return arr
}
// Решение псевдопустого массива
function test2() {
let taskObjects = []
let arrObj = [{
some: 1,
heh: 2,
changeStatus: "taskWasDeleted"
},
{
some: 2,
heh: 2,
changeStatus: "taskWasDeleted"
},
{
some: 3,
heh: 2,
changeStatus: "taskWasDeleted"
},
]
if(arrObj != null){
removeDeleted(arrObj, "taskWasDeleted") // Тута три объекта удаляются
}
console.warn("Решение")
console.warn(arrObj)
console.warn("arrObj.length: "+ arrObj.length)
if (arrObj === null || arrObj.length === 0) {
arrObj = [{
some: `empty`,
heh: 1
}]
arrObj = taskObjects // Копируется массив как ссылка
} else {
taskObjects = arrObj
}
console.log(taskObjects)
}
test2()
function removeDeleted(arr, value)...