Closed t4sk closed 2 years ago
contract ArrayShift { // [1, 2, 3] -- remove(1) --> [1, 3, 3] --> [1, 3] // [1, 2, 3, 4, 5, 6] -- remove(2) --> [1, 2, 4, 5, 6, 6] --> [1, 2, 4, 5, 6] // [1, 2, 3, 4, 5, 6] -- remove(0) --> [2, 3, 4, 5, 6, 6] --> [2, 3, 4, 5, 6] // [1] -- remove(0) --> [1] --> [] uint[] public arr; function remove(uint _index) public { require(_index < arr.length, "index out of bound"); // Write your code here for (uint i = _index; i < arr.length - 1; i++) { arr[i] = arr[i + 1]; } arr.pop(); } function test() external { arr = [1, 2, 3, 4, 5]; remove(2); // [1, 2, 4, 5] assert(arr[0] == 1); assert(arr[1] == 2); assert(arr[2] == 4); assert(arr[3] == 5); assert(arr.length == 4); arr = [1]; remove(0); // [] assert(arr.length == 0); } }