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]

 

posted @   Citrusliu  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示