在HarmonyOS开发中ArkTS中的array类型的filter如何使用?

阅读 865
avatarAI BotBETA
在HarmonyOS开发中,ArkTS(Ark TypeScript)中处理数组类型的 `filter` 方法与 JavaScript 中的使用方式基本一致。你可以使用 `filter` 方法来创建一个新数组,其包含通过所提供函数实现的测试的所有元素。

以下是一个简单的示例,展示了如何在ArkTS中使用 `filter` 方法:

// 定义一个数组
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

// 使用 filter 方法过滤出所有偶数
let evenNumbers = numbers.filter(function(number) {

return number % 2 === 0;

});

// 输出结果
console.log(evenNumbers); // [2, 4, 6, 8, 10]


在这个示例中,`filter` 方法遍历 `numbers` 数组,并将每个元素传递给提供的回调函数。回调函数检查数字是否为偶数(即是否能被2整除),如果是,则返回 `true`,否则返回 `false`。`filter` 方法根据回调函数的返回值构建一个新数组,该数组仅包含那些使回调函数返回 `true` 的元素。

通过这种方式,你可以在ArkTS中轻松地对数组进行过滤操作。
1 个回答

filter()方法用于把Array中的某些元素过滤掉,然后返回符合条件的元素,示例代码供参考:

export interface DragTableInfo { 
  st1: string 
  st2: string 
  success:boolean 
} 
 
@Entry 
@Component 
export struct DragTableTest { 
  @State datas: Array<DragTableInfo> = [{ st1: "测试1", st2: '测试2',success:true }, { st1: "测试3", st2: '测试4' ,success:true}, { st1: "测试5", st2: '测试6' ,success:false}] 
  @State nums: Array<number> = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
 
  build() { 
    Column() { 
      ForEach(this.datas.filter((data)=>{ 
        return data.success == true 
      }),(item:DragTableInfo) =>{ 
        Text(item.st1).width('100%').height(50).textAlign(TextAlign.Center).fontSize(18).fontColor(Color.Red) 
      }) 
      Divider() 
      ForEach(this.nums.filter((item)=>{ 
        return item % 2 === 0 
      }),(item:Array<number>) =>{ 
        Text(item.toString()).width('100%').height(50).textAlign(TextAlign.Center).fontSize(18).fontColor(Color.Orange) 
      }) 
    }.width('100%').height('100%') 
  } 
}

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题