{"ScriptPreparationCode":"var obj = [\r\n {\r\n type: \u0022fixedCost\u0022,\r\n description: {\r\n content: \u0022\u003Cp\u003E\u003Cbr\u003E\u003C/p\u003E\u0022,\r\n widgets: {},\r\n tokens: [\r\n {\r\n type: \u0022block\u0022,\r\n subType: \u0022paragraph\u0022,\r\n },\r\n {\r\n type: \u0022inline\u0022,\r\n subType: \u0022text\u0022,\r\n content: \u0022TMS and ESS Licences\u0022,\r\n style: {},\r\n },\r\n ],\r\n },\r\n quantity: 1,\r\n discount: {\r\n enabled: false,\r\n type: \u0022percent\u0022,\r\n units: 0,\r\n },\r\n rate: {\r\n unit: \u0022Employee Licence\u0022,\r\n rate: 4.05,\r\n },\r\n isTaxExempt: false,\r\n interactive: {\r\n isOptional: false,\r\n isOptionalSelected: false,\r\n isQuantityOptional: false,\r\n quantityRange: {\r\n min: 0,\r\n max: 0,\r\n },\r\n isOptionalQuantity: false,\r\n },\r\n currency: \u0022GBP\u0022,\r\n id: \u0022k55w3lGzGM4\u0022,\r\n },\r\n {\r\n type: \u0022fixedCost\u0022,\r\n description: {\r\n content: \u0022\u003Cp\u003E\u003Cbr\u003E\u003C/p\u003E\u0022,\r\n widgets: {},\r\n tokens: [\r\n {\r\n type: \u0022block\u0022,\r\n subType: \u0022paragraph\u0022,\r\n },\r\n {\r\n type: \u0022inline\u0022,\r\n subType: \u0022text\u0022,\r\n content: \u0022Biometric Clock\u0022,\r\n },\r\n ],\r\n },\r\n quantity: 5,\r\n discount: {\r\n enabled: false,\r\n type: \u0022percent\u0022,\r\n units: 0,\r\n },\r\n rate: {\r\n unit: \u0022Unit\u0022,\r\n rate: 1500,\r\n },\r\n isTaxExempt: false,\r\n interactive: {\r\n isOptional: true,\r\n isOptionalSelected: false,\r\n isQuantityOptional: true,\r\n quantityRange: {\r\n min: 0,\r\n max: 5,\r\n },\r\n },\r\n currency: \u0022GBP\u0022,\r\n id: \u0022iQWwrO6qLew\u0022,\r\n },\r\n {\r\n type: \u0022fixedCost\u0022,\r\n description: {\r\n content: \u0022\u003Cp\u003E\u003Cbr\u003E\u003C/p\u003E\u0022,\r\n widgets: {},\r\n tokens: [\r\n {\r\n subType: \u0022paragraph\u0022,\r\n type: \u0022block\u0022,\r\n },\r\n {\r\n content: \u0022Proximity Clock\u0022,\r\n subType: \u0022text\u0022,\r\n type: \u0022inline\u0022,\r\n },\r\n ],\r\n },\r\n quantity: 5,\r\n discount: {\r\n enabled: false,\r\n type: \u0022percent\u0022,\r\n units: 0,\r\n },\r\n rate: {\r\n unit: \u0022Unit\u0022,\r\n rate: 1500,\r\n },\r\n isTaxExempt: false,\r\n interactive: {\r\n isOptional: true,\r\n isOptionalSelected: false,\r\n isQuantityOptional: true,\r\n quantityRange: {\r\n min: 0,\r\n max: 100,\r\n },\r\n },\r\n currency: \u0022GBP\u0022,\r\n id: \u0022u0eMdVcAx1U\u0022,\r\n },\r\n {\r\n type: \u0022text\u0022,\r\n description: {\r\n content: \u0022\u003Cp\u003E\u003Cbr\u003E\u003C/p\u003E\u0022,\r\n widgets: {},\r\n tokens: [\r\n {\r\n type: \u0022block\u0022,\r\n subType: \u0022paragraph\u0022,\r\n },\r\n {\r\n type: \u0022inline\u0022,\r\n subType: \u0022text\u0022,\r\n content: \u0022T\u0026amp;A Clocking Terminals\u0022,\r\n style: {},\r\n },\r\n ],\r\n },\r\n interactive: {\r\n isOptional: false,\r\n isOptionalSelected: false,\r\n },\r\n id: \u0022dPVSGJMm97g\u0022,\r\n },\r\n {\r\n type: \u0022fixedCost\u0022,\r\n description: {\r\n content: \u0022\u003Cp\u003E\u003Cbr\u003E\u003C/p\u003E\u0022,\r\n widgets: {},\r\n tokens: [\r\n {\r\n type: \u0022block\u0022,\r\n subType: \u0022paragraph\u0022,\r\n },\r\n {\r\n type: \u0022inline\u0022,\r\n subType: \u0022text\u0022,\r\n content:\r\n \u0022MF900 Stainless Steel T\u0026amp;A/Muster Point (UK Only) (Reader Required - To be Identified from External Readers)\u0022,\r\n style: {},\r\n },\r\n ],\r\n },\r\n quantity: 1,\r\n discount: {\r\n enabled: false,\r\n type: \u0022percent\u0022,\r\n units: 0,\r\n },\r\n rate: {\r\n unit: \u0022Unit\u0022,\r\n rate: 1750,\r\n },\r\n isTaxExempt: false,\r\n interactive: {\r\n isOptional: false,\r\n isOptionalSelected: false,\r\n isQuantityOptional: false,\r\n quantityRange: {\r\n min: 0,\r\n max: 0,\r\n },\r\n isOptionalQuantity: false,\r\n },\r\n currency: \u0022GBP\u0022,\r\n id: \u0022BCLCCimoZ6M\u0022,\r\n },\r\n {\r\n type: \u0022fixedCost\u0022,\r\n description: {\r\n content: \u0022\u003Cp\u003E\u003Cbr\u003E\u003C/p\u003E\u0022,\r\n widgets: {},\r\n tokens: [\r\n {\r\n type: \u0022block\u0022,\r\n subType: \u0022paragraph\u0022,\r\n },\r\n {\r\n type: \u0022inline\u0022,\r\n subType: \u0022text\u0022,\r\n content:\r\n \u0022MF901 Stainless Steel T\u0026amp;A/Muster Point - PoE - (Beta Test Sites Only) (Reader Required - To be Identified from External Readers)\u0022,\r\n style: {},\r\n },\r\n ],\r\n },\r\n quantity: 1,\r\n discount: {\r\n enabled: false,\r\n type: \u0022percent\u0022,\r\n units: 0,\r\n },\r\n rate: {\r\n unit: \u0022Unit\u0022,\r\n rate: 1750,\r\n },\r\n isTaxExempt: false,\r\n interactive: {\r\n isOptional: false,\r\n isOptionalSelected: false,\r\n isQuantityOptional: false,\r\n quantityRange: {\r\n min: 0,\r\n max: 0,\r\n },\r\n isOptionalQuantity: false,\r\n },\r\n currency: \u0022GBP\u0022,\r\n id: \u0022AOqDHpIIeAI\u0022,\r\n },\r\n ];","TestCases":[{"Name":"spread","Code":"let newObj = [...obj]","IsDeferred":false},{"Name":"for loop","Code":"let newObj = []\r\nfor(let i=0; i\u003Cobj.length; i\u002B\u002B) {\r\n newObj[i] = obj[i]\r\n}","IsDeferred":false},{"Name":"for loop (array push)","Code":"let newObj = []\r\nfor(let i=0; i\u003Cobj.length; i\u002B\u002B) {\r\n newObj.push(obj[i])\r\n}","IsDeferred":false},{"Name":"slice","Code":"let newArr = obj.slice();","IsDeferred":false},{"Name":"Array.from","Code":"let newArr = Array.from(obj);","IsDeferred":false}]}