Использование фреймворка JavaScriptCore включает код JavaScript в коде Swift.
Класс, с которым вы будете иметь дело больше всего, является JSContext. Этот класс является реальной средой (контекстом), которая выполняет ваш JavaScript-код.
Все значения в JSContext являются объектами JSValue, так как класс JSValue представляет тип данных любого значения JavaScript. Это означает, что если вы получаете доступ к переменной JavaScript и функции JavaScript из Swift, оба они считаются объектами JSValue.
Настоятельно рекомендую вам прочитать официальную документацию относительно рамки JavaScriptCore .
// Specify the path to the jssource.js file.
if let jsSourcePath = Bundle.main.path(forResource: "jssource", ofType: "js") {
do {
// Load its contents to a String variable.
let jsSourceContents = try String(contentsOfFile: jsSourcePath)
// Add the Javascript code that currently exists in the jsSourceContents to the Javascript Runtime through the jsContext object.
self.jsContext.evaluateScript(jsSourceContents)
}
catch {
print(error.localizedDescription)
}
}
Используйте оператор спреда
Это сделает то, что вам нужно
let otherObject= {...tasks};
let projects= {'other': {...otherObject}, 'title': this.projectForm.value['title'],
'state': this.projectForm.value['state'],
'comment': this.projectForm.value['comment']
}
Оператор спреда начинается с '. .. 'и является функцией ES6
Я добавляю еще один пример использования консоли браузера (chrome), это должно помочь прояснить его далее.
Таким образом, один помощник поднял точку в комментариях о наличии массива в разбросе вместо одного объекта. Ниже приводится кое-что, на что вы можете ссылаться;) наслаждайтесь !!
Добавление еще одного способа сделать это с помощью оператора распространения:
Вы можете использовать простое равное :
для объединения двух объектов - это машинопись, а также здесь есть онлайн-среда, в которой вы можете увидеть соединение двух объектов (ваш пример): -cdjv2k