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 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 listPropertyConcat: listProperty.concat(listProperty) property list 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 listPropertyPop: listProperty property QtObject listPropertyPopped property list jsArrayPop property QtObject jsArrayPopped property list listPropertyPush: listProperty property int listPropertyPushed property list jsArrayPush property int jsArrayPushed property list listPropertyReverse: listProperty property list jsArrayReverse: jsArray().reverse() property list listPropertyShift: listProperty property QtObject listPropertyShifted property list jsArrayShift property QtObject jsArrayShifted property list listPropertySplice: listProperty property list listPropertySpliced property list jsArraySplice property list jsArraySpliced property list listPropertyUnshift: listProperty property int listPropertyUnshifted property list 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 listPropertyMap: listProperty.map(((element) => element.objectName)) property list jsArrayMap: jsArray().map(((element) => element.objectName)) property list listPropertyFilter: listProperty.filter((element) => element.objectName != "klaus") property list 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 jsArrayOwnPropertyNames: Object.getOwnPropertyNames(jsArray()) property list listPropertyOwnPropertyNames: Object.getOwnPropertyNames(listProperty) property list listPropertySort1: listProperty property list jsArraySort1: jsArray().sort() property list listPropertySort2: listProperty property list 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); } }