1. 数组存在该项replace不存在push

  1. function pushToArray(arr, obj) {
  2. const index = arr.findIndex((e) => e.id === obj.id);
  3. if (index === -1) {
  4. arr.push(obj);
  5. } else {
  6. arr[index] = obj;
  7. }
  8. }

Determine whether to push or update object in array based on unique ID

2. slice/splice

Slice 不改变原数组

  1. let bread = ['loaf1','loaf2','loaf3','loaf4','loaf5','loaf6'];
  2. newArr = bread.slice(2, 5);
  3. console.log(newArr); // [ 'loaf3', 'loaf4', 'loaf5' ]

Splice leads to mutation of the origin array

  1. 只删除 ```javascript let bread = [‘loaf1’,’loaf2’,’loaf3’,’loaf4’,’loaf5’,’loaf6’]; bread.splice(1, 3); console.log(bread); // [“loaf2”, “loaf3”, “loaf4”]
  1. 2. Removing and adding new element
  2. ```javascript
  3. let bread = ['loaf1','loaf2','loaf3','loaf4','loaf5','loaf6'];
  4. bread.splice(1, 3, 'newLoaf1', 'newLoaf2');
  5. console.log(bread);
  6. // ["loaf1", "newLoaf1", "newLoaf2", "loaf5", "loaf6"]
  1. Only adding new element
    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"]
    
    Array.slice 8 种不同用法