Qt - QML中数组相关操作函数
简介
在 QML 中,没有专门定义 QML 特有的数组类型,但可以直接使用 JavaScript 数组,并借助 JavaScript 提供的数组操作函数来管理和操作数组。
以下是 QML 中常见数组操作函数的介绍和用法示例。
数组创建
数组是 JavaScript 提供的基础数据结构,可以直接在 QML 中使用:
var myArray = [1, 2, 3, 4] // 创建一个包含数字的数组 var stringArray = ["apple", "banana", "cherry"] // 创建一个包含字符串的数组
数组元素增加
push(item): 在数组末尾添加一个或多个元素,并返回新数组的长度。 unshift(item): 在数组开头添加一个或多个元素,并返回新数组的长度。 var myArray = [1, 2, 3] // push 添加元素到末尾 myArray.push(4) // myArray = [1, 2, 3, 4] // unshift 添加元素到开头 myArray.unshift(0) // myArray = [0, 1, 2, 3, 4]
数组元素删除
pop(): 从数组末尾移除一个元素,返回被移除的元素。 shift(): 从数组开头移除一个元素,返回被移除的元素。 splice(startIndex, deleteCount): 删除或替换数组中的指定元素。 var myArray = [1, 2, 3, 4] // 从末尾删除元素 var last = myArray.pop() // myArray = [1, 2, 3], last = 4 // 从开头删除元素 var first = myArray.shift() // myArray = [2, 3], first = 1 // 删除从索引 1 开始的 1 个元素 myArray.splice(1, 1) // myArray = [2], 删除索引 1 的值 3
数组元素修改
可以通过 索引 直接访问和修改数组元素,也可以结合 splice 执行替换操作。 var myArray = [1, 2, 3] // 修改某一位置的元素 myArray[1] = 20 // myArray = [1, 20, 3] // 替换元素(splice) myArray.splice(1, 1, 100) // myArray = [1, 100, 3]
数组元素访问
使用 索引 访问元素。 使用 length 获取数组长度。 var myArray = [10, 20, 30] // 访问数组元素 console.log(myArray[0]) // 输出:10 // 获取数组长度 console.log(myArray.length) // 输出:3
数组元素查找
indexOf(item): 返回数组中第一个匹配项的索引,未找到返回 -1。 lastIndexOf(item): 从数组的尾部开始查找元素。 includes(item): 检查数组是否包含某个元素,返回布尔值。 var myArray = [10, 20, 30, 20, 40] // 查找元素索引 console.log(myArray.indexOf(20)) // 输出:1 console.log(myArray.lastIndexOf(20)) // 输出:3 // 检查是否包含某个元素 console.log(myArray.includes(30)) // 输出:true console.log(myArray.includes(100)) // 输出:false
数组元素遍历
1、forEach 对数组每个元素调用一次指定函数,无返回值。 var myArray = [1, 2, 3, 4] myArray.forEach(function(item) { console.log(item) // 依次输出 1, 2, 3, 4 }) 2、map 对数组中的每个元素执行指定函数,并返回新数组。 var myArray = [1, 2, 3, 4] var newArray = myArray.map(function(item) { return item * 2 }) // newArray = [2, 4, 6, 8] 3、filter 筛选出数组中满足条件的元素,返回新数组。 var myArray = [1, 2, 3, 4] var filteredArray = myArray.filter(function(item) { return item % 2 === 0 }) // filteredArray = [2, 4]
数组元素排序
sort(compareFn): 对数组进行排序(原地修改)。 reverse(): 将数组顺序反转(原地修改)。
注意:sort()
默认将数组元素作为字符串比较,若需数值比较需提供自定义函数。 var myArray = [4, 2, 3, 1] // 排序(升序) myArray.sort(function(a, b) { return a - b }) // myArray = [1, 2, 3, 4] // 倒序 myArray.reverse() // myArray = [4, 3, 2, 1]
数组元素部分提取
slice(start, end): 提取数组的一部分,返回新数组(不修改原数组)。 splice(start, deleteCount, ...items): 删除或替换数组一部分(修改原数组)。 var myArray = [1, 2, 3, 4] // 提取部分数组 var subArray = myArray.slice(1, 3) // subArray = [2, 3] // 删除 + 替换部分元素 myArray.splice(1, 2, 10, 20) // myArray = [1, 10, 20, 4]
数组元素组合
concat(array1, array2): 连接两个或多个数组,返回新数组。 join(separator): 将数组转为字符串,用指定分隔符连接。 var array1 = [1, 2] var array2 = [3, 4] // 连接数组 var combined = array1.concat(array2) // combined = [1, 2, 3, 4] // 转换为字符串 var joined = combined.join(", ") // joined = "1, 2, 3, 4"
数组元素条件查找
find(callback): 返回满足条件的第一个元素。 findIndex(callback): 返回满足条件的第一个元素的索引。 some(callback): 检查是否有至少一个元素满足条件,返回布尔值。 every(callback): 检查是否所有元素都满足条件,返回布尔值。 var myArray = [10, 20, 30, 40] // 找到第一个大于 25 的元素及其索引 var found = myArray.find(function(item) { return item > 25 }) // found = 30 var foundIndex = myArray.findIndex(function(item) { return item > 25 }) // foundIndex = 2 // 是否至少有一个元素大于 35 console.log(myArray.some(function(item) { return item > 35 })) // 输出:true // 是否所有元素都小于 50 console.log(myArray.every(function(item) { return item < 50 })) // 输出:true
数组元素填充
fill(value, start, end): 用指定值填充数组的部分或全部内容(修改原始数组)。 var myArray = [1, 2, 3, 4] myArray.fill(0, 1, 3) // myArray = [1, 0, 0, 4]
博客园文作者:Citrusliu
博文地址:https://www.cnblogs.com/citrus
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性