Solidity 中如何删除数组中某个位置的元素?

Solidity 中如何删除数组中某个位置的元素?

请先 登录 后评论

最佳答案 2019-12-11 10:17

Solidity 中如何删除数组中某个位置的元素?

使用 delete 操作符

delete 操作符可以删除元素:

delete array[index];

移动元素(可选)

不过上面会留出一个空位置,如果先移除这个位置,则需要手动移动元素:

contract test{
    uint[] array = [1,2,3,4,5];
    function remove(uint index)  returns(uint[]) {
        if (index >= array.length) return;

        for (uint i = index; i<array.length-1; i++){
            array[i] = array[i+1];
        }
        delete array[array.length-1];
        array.length--;
        return array;
    }
}

如果不关心元素的位置,可以把最后一个元素拷贝到删除的元素上。

参考文档

  1. 数组成员
  2. delete 操作符

原问题链接

深入浅出区块链 - 打造高质量区块链技术博客,学区块链都来这里,关注知乎微博

请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,4995 浏览
  • 晓娜 提出于 2019-12-11 10:15