1. 数组存在该项replace不存在push
function pushToArray(arr, obj) {
const index = arr.findIndex((e) => e.id === obj.id);
if (index === -1) {
arr.push(obj);
} else {
arr[index] = obj;
}
}
Determine whether to push or update object in array based on unique ID
2. slice/splice
Slice 不改变原数组
let bread = ['loaf1','loaf2','loaf3','loaf4','loaf5','loaf6'];
newArr = bread.slice(2, 5);
console.log(newArr); // [ 'loaf3', 'loaf4', 'loaf5' ]
Splice leads to mutation of the origin array
- 只删除 ```javascript let bread = [‘loaf1’,’loaf2’,’loaf3’,’loaf4’,’loaf5’,’loaf6’]; bread.splice(1, 3); console.log(bread); // [“loaf2”, “loaf3”, “loaf4”]
2. Removing and adding new element
```javascript
let bread = ['loaf1','loaf2','loaf3','loaf4','loaf5','loaf6'];
bread.splice(1, 3, 'newLoaf1', 'newLoaf2');
console.log(bread);
// ["loaf1", "newLoaf1", "newLoaf2", "loaf5", "loaf6"]
- Only adding new element
Array.slice 8 种不同用法let bread = ['loaf1','loaf2','loaf3','loaf4','loaf5','loaf6']; bread.splice(3, 0, 'newLoaf1', 'newLoaf2'); console.log(bread); // ["loaf1", "loaf2", "loaf3", "newLoaf1", "newLoaf2", "loaf4", "loaf5", "loaf6"]