HarmonyOS 鸿蒙Next:Array怎么删除某一条数据通过下标或实体

HarmonyOS 鸿蒙Next:Array怎么删除某一条数据通过下标或实体 Array怎么删除某一条数据通过下标或实体,找了好久都不会

9 回复
let arr = ['apple', 'banana', 'cherry'];
let index = arr.indexOf('banana'); // 找到'banana'的下标
console.log(`index:${index}`); // 输出会是 1 (1表示数组第二个元素)
if (index > -1) {
  arr.splice(index, 1); // 从找到的下标开始删除1个元素
}
console.log(`arr:${arr}`); // 输出会是 ['apple', 'cherry']

更多关于HarmonyOS 鸿蒙Next:Array怎么删除某一条数据通过下标或实体的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


感谢,爱你,

indexOf,在splice

数组没有删除的方法,其实就是通过语法糖,生成一个新的数组;

类似这样:

使用 splice() 方法

splice() 方法通过删除或替换现有元素或者原地添加新元素来修改数组, 并以数组形式返回被修改的内容。这是直接修改原数组的方法。

或者是改用 ArrayList, ListLinked;

我是用array用于组件渲染,但是用ArrayList好像不行吧,放在ForEach里会报错

@Observed export class ObservedArray<T> extends ArrayList<T>,

arrayList:[{"0":"a"},{"1":"c"},{"2":"d"}]

  • 如果是List控件的话,改成使用LazyForEach就可以了。

splice()

在HarmonyOS鸿蒙系统中,若要从Array中删除某一条数据,可以通过以下方式实现,假设你使用的是鸿蒙系统提供的容器类(如Vector或自定义的数据结构)。

  1. 通过下标删除: 如果你使用的是Vector类,可以直接利用remove方法通过下标删除元素。例如:

    Vector<int> myArray = {1, 2, 3, 4, 5};
    int indexToRemove = 2; // 要删除的下标
    if (indexToRemove >= 0 && indexToRemove < myArray.size()) {
        myArray.remove(indexToRemove);
    }
    
  2. 通过实体删除: 如果数组是自定义类型,并且你想通过实体删除,可以先找到该实体的下标,然后删除。例如,对于自定义类型MyClass

    Vector<MyClass> myArray = {...};
    MyClass target; // 要删除的实体
    int index = -1;
    for (int i = 0; i < myArray.size(); i++) {
        if (myArray[i] == target) {
            index = i;
            break;
        }
    }
    if (index >= 0) {
        myArray.remove(index);
    }
    

请注意,上述代码示例假设Vector类及其方法的使用方式与传统C++中的std::vector类似。实际使用中,请根据鸿蒙系统提供的API文档进行具体实现。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部