qt6-bb10/qtdeclarative/tests/auto/qml/qqmllistreference/data/jsArrayMethods.qml

202 lines
7.2 KiB
QML

import QML
QtObject {
id: self
property QtObject l1: QtObject { objectName: "klaus" }
property QtObject l2: QtObject { function toString(): string { return "teil" } }
property QtObject l3: QtObject { }
function jsArray() { return [l1, l2, l3] }
property list<QtObject> listProperty: [l1, l2, l3]
property string jsArrayToString: jsArray().toString()
property string listPropertyToString: listProperty.toString()
property string jsArrayToLocaleString: jsArray().toLocaleString()
property string listPropertyToLocaleString: listProperty.toLocaleString()
property list<QtObject> listPropertyConcat: listProperty.concat(listProperty)
property list<QtObject> jsArrayConcat: jsArray().concat(jsArray())
property QtObject listPropertyFind: listProperty.find(element => element.objectName === "klaus")
property QtObject jsArrayFind: jsArray().find(element => element.objectName === "klaus")
property int listPropertyFindIndex: listProperty.findIndex(element => element === l2)
property int jsArrayFindIndex: jsArray().findIndex(element => element === l2)
property bool listPropertyIncludes: listProperty.includes(l3)
property bool jsArrayIncludes: jsArray().includes(l3)
property string listPropertyJoin: listProperty.join()
property string jsArrayJoin: jsArray().join()
property bool entriesMatch: {
var iterator = listProperty.entries();
for (var [index, element] of jsArray().entries()) {
var v = iterator.next().value;
if (index !== v[0] || element !== v[1]) {
console.log(index, v[0], element, v[1]);
return false;
}
}
var iterator = jsArray().entries();
for (var [index, element] of listProperty.entries()) {
var v = iterator.next().value;
if (index !== v[0] || element !== v[1]) {
console.log(index, v[0], element, v[1]);
return false;
}
}
return true;
}
property bool keysMatch: {
var iterator = listProperty.keys();
for (var index of jsArray().keys()) {
var v = iterator.next().value;
if (index !== v) {
console.log(index, v);
return false;
}
}
var iterator = jsArray().keys();
for (var index of listProperty.keys()) {
var v = iterator.next().value;
if (index !== v) {
console.log(index, v);
return false;
}
}
return true;
}
property bool valuesMatch: {
var iterator = listProperty.values();
for (var obj of jsArray().values()) {
var v = iterator.next().value;
if (obj !== v) {
console.log(obj, v);
return false;
}
}
var iterator = jsArray().values();
for (var obj of listProperty.values()) {
var v = iterator.next().value;
if (obj !== v) {
console.log(obj, v);
return false;
}
}
return true;
}
property list<QtObject> listPropertyPop: listProperty
property QtObject listPropertyPopped
property list<QtObject> jsArrayPop
property QtObject jsArrayPopped
property list<QtObject> listPropertyPush: listProperty
property int listPropertyPushed
property list<QtObject> jsArrayPush
property int jsArrayPushed
property list<QtObject> listPropertyReverse: listProperty
property list<QtObject> jsArrayReverse: jsArray().reverse()
property list<QtObject> listPropertyShift: listProperty
property QtObject listPropertyShifted
property list<QtObject> jsArrayShift
property QtObject jsArrayShifted
property list<QtObject> listPropertySplice: listProperty
property list<QtObject> listPropertySpliced
property list<QtObject> jsArraySplice
property list<QtObject> jsArraySpliced
property list<QtObject> listPropertyUnshift: listProperty
property int listPropertyUnshifted
property list<QtObject> jsArrayUnshift
property int jsArrayUnshifted
property int listPropertyIndexOf: listProperty.indexOf(l2)
property int jsArrayIndexOf: jsArray().indexOf(l2)
property int listPropertyLastIndexOf: listProperty.lastIndexOf(l3)
property int jsArrayLastIndexOf: jsArray().lastIndexOf(l3)
property bool listPropertyEvery: listProperty.every((element) => element != null)
property bool jsArrayEvery: jsArray().every((element) => element != null)
property bool listPropertySome: listProperty.some((element) => element.objectName === "klaus")
property bool jsArraySome: jsArray().some((element) => element.objectName === "klaus")
property string listPropertyForEach
property string jsArrayForEach
property list<string> listPropertyMap: listProperty.map(((element) => element.objectName))
property list<string> jsArrayMap: jsArray().map(((element) => element.objectName))
property list<QtObject> listPropertyFilter: listProperty.filter((element) => element.objectName != "klaus")
property list<QtObject> jsArrayFilter: jsArray().filter((element) => element.objectName != "klaus")
property string listPropertyReduce: listProperty.reduce((element, v) => v + '-' + element.objectName + 'v', "")
property string jsArrayReduce: jsArray().reduce((element, v) => v + '-' + element.objectName + 'v', "")
property string listPropertyReduceRight: listProperty.reduceRight((element, v) => v + '-' + element.objectName + 'v', "")
property string jsArrayReduceRight: jsArray().reduceRight((element, v) => v + '-' + element.objectName + 'v', "")
property list<string> jsArrayOwnPropertyNames: Object.getOwnPropertyNames(jsArray())
property list<string> listPropertyOwnPropertyNames: Object.getOwnPropertyNames(listProperty)
property list<QtObject> listPropertySort1: listProperty
property list<QtObject> jsArraySort1: jsArray().sort()
property list<QtObject> listPropertySort2: listProperty
property list<QtObject> jsArraySort2: jsArray().sort((a, b) => (a.objectName.length - b.objectName.length))
Component.onCompleted: {
listPropertyReverse.reverse();
listPropertyPopped = listPropertyPop.pop();
var a = jsArray();
jsArrayPopped = a.pop();
jsArrayPop = a;
listPropertyPushed = listPropertyPush.push(self);
a = jsArray();
jsArrayPushed = a.push(self);
jsArrayPush = a;
listPropertyShifted = listPropertyShift.shift();
a = jsArray();
jsArrayShifted = a.shift();
jsArrayShift = a;
listPropertyUnshifted = listPropertyUnshift.unshift(self);
a = jsArray();
jsArrayUnshifted = a.unshift(self);
jsArrayUnshift = a;
listProperty.forEach((element) => { listPropertyForEach += "-" + element.objectName + "-" });
jsArray().forEach((element) => { jsArrayForEach += "-" + element.objectName + "-" });
listPropertySort1.sort();
listPropertySort2.sort((a, b) => (a.objectName.length - b.objectName.length))
console.log(jsArraySort1, listPropertySort1);
console.log(jsArraySort2, listPropertySort2);
}
}