Sha256: a35f431ab904ed5801686b8a02758bc31e26fc6436b90814e162dc81d243a7ef
Contents?: true
Size: 1.21 KB
Versions: 38
Compression:
Stored size: 1.21 KB
Contents
const AbstractHandler = require("./AbstractHandler") class ArraySetItemHandler extends AbstractHandler { requiredParametersCount = 3 constructor() { super() } process(command) { try { if (command.payload.length < this.requiredParametersCount) { throw new Error("Array Set Item parameters mismatch") } let array = command.payload[0] let value = command.payload[2] let indexes if (Array.isArray(command.payload[1])) { indexes = command.payload[1] } else { indexes = [command.payload[1]] } if (indexes.length === 1) { // one-dimensional array array[indexes] = value } else { // multi-dimensional array for (let i = 0; i < indexes.length - 1; i++) { array = array[indexes[i]] } array[indexes[indexes.length - 1]] = value } return 0; } catch (error) { throw this.process_stack_trace(error, this.constructor.name) } } } module.exports = new ArraySetItemHandler()
Version data entries
38 entries across 24 versions & 1 rubygems