diff --git a/src/lib/Toolbox/Toolbox.xml b/src/lib/Toolbox/Toolbox.xml
index a80839b..9a81a0f 100644
--- a/src/lib/Toolbox/Toolbox.xml
+++ b/src/lib/Toolbox/Toolbox.xml
@@ -79,6 +79,7 @@
+
diff --git a/src/resources/blocks/json.js b/src/resources/blocks/json.js
index 5741e35..c59fa31 100644
--- a/src/resources/blocks/json.js
+++ b/src/resources/blocks/json.js
@@ -82,6 +82,35 @@ function register() {
return [`(${X || "[]"}.push(${Y || '""'}))`, javascriptGenerator.ORDER_ATOMIC];
})
+ // set
+ registerBlock(`${categoryPrefix}arrayset`, {
+ message0: 'set %1 to %2 in %3',
+ args0: [
+ {
+ "type": "input_value",
+ "name": "X",
+ "check": "Number"
+ },
+ {
+ "type": "input_value",
+ "name": "Y",
+ },
+ {
+ "type": "input_value",
+ "name": "Z",
+ "check": "JSONArray"
+ },
+ ],
+ output: "JSONArray",
+ inputsInline: true,
+ colour: categoryColor
+ }, (block) => {
+ const X = javascriptGenerator.valueToCode(block, 'X', javascriptGenerator.ORDER_ATOMIC);
+ const Y = javascriptGenerator.valueToCode(block, 'Y', javascriptGenerator.ORDER_ATOMIC);
+ const Z = javascriptGenerator.valueToCode(block, 'Z', javascriptGenerator.ORDER_ATOMIC);
+ return [`(() => { var z = ${Z}; z[${X}] = ${Y}; return z })()`, javascriptGenerator.ORDER_ATOMIC];
+ })
+
// get
registerBlock(`${categoryPrefix}arrayget`, {
message0: 'get %1 from array %2',