//數組操做工具函數:arrayUtils都是產生新的array,而不是操做源array let arrayUtils = { /** * 在指定索引位置增長新元素,未指定index時添加到最後面 * @param array (array) * @param newItem (object) * @param index (int) * @returns {*} 返回新數組 */ addItem: (array, newItem, index) => { if(typeof index !== 'undefined'){ return [ ...array.slice(0, index), newItem, ...array.slice(index + 1) ] }else{ return [ ...array, newItem ]; } }, /** * 刪除指定id的元素 * @param array * @param id * @returns {[*,*]} 返回新數組 */ delItem: (array, id) => { const findIndex = array.findIndex(item => item.id == id); return [ ...array.slice(0, findIndex), ...array.slice(findIndex + 1) ]; }, /** * 替換數組中指定的元素 * @param array * @param id * @param newItem (object) * @returns {[*,*,*]} 返回新數組 */ modifyItem: (array, id, newItem) => { const findIndex = array.findIndex(item => item.id == id); return [ ...array.slice(0, findIndex), { ...array[findIndex], ...newItem }, ...array.slice(findIndex + 1) ]; } };