我已经开始了一个新的项目来提高我的Javascript技能。这个项目(这里是演示)和(这里是源代码)涉及决策制定,并使用治疗中教授的关键技能来分解未来的行动、决策、目标等,评估利弊和后果(正面或负面)。我的想法是看看我是否可以创建一个随时可以满足这些需求的应用程序,这样我就可以帮助那些想花点时间思考下一步行动的人,以及这是否对他们和我自己都有好处。
从应用程序中可以看到,您需要完成三个步骤;主题、后果、评论(对所述后果)以及最后的第四步是反思。我遇到的困难是把这一切都整理好。我想将数据放入一个数组中,然后将其呈现(以及保存到本地存储)到表示反射阶段的div容器中。因为表单不是直接的,因为它不是简单地获取输入元素的值,而是从父select元素“链接”option元素值,所以我很难将所有数据放在一起。
我该怎么做?
我想做的一个例子:
let array = []
// Logic here
// User defines a subject to 'discuss' and then proceeds to select the consequences and then expands on these consequences. Finally, user goes to save this 'session'. It is rendered to the 'Reflection' container. Source code is available
array = [
subject: "A new job" // all examples here
options: {
advantages: "more pay", "people", "future",
questionable: "apocalypse?",
disadvantages: "traveling to work", "long hours"
}
]
我希望动态更新阵列。例如,假设用户添加了另一个“Advantage”以及一些文本,我希望advantages属性反映新的更改,而不删除现有项。我不想添加新数组。我只想要一个数组,因为它的目的是让这个应用程序成为一个单独的会话,而不是处理多个要讨论的主题。我之前选择了禁用主题输入元素,这样它就不能再被编辑和“发送”来解决这个问题,但现在已经用一个基本的条件语句来解决,检查主题标题是否存在于数组中,如果存在,尝试使用现有阵列。我还尝试过采用“模块化”方法,一步一步地处理表单数据,这很像一个多步骤表单,而所有表单都在一个页面上,并且没有动态内容更改。这样做的目的是打破数据的收集和处理。我希望所有这些都能使数据操作更容易,但我仍然无法创建一个可以用于渲染所有数据的数组。
当我设法创建了一个类似于从表单中收集的数据的数组,但它不是动态的时,我已经接近于解决这个问题。如上所述的options属性不会“连接/链接/集成”来自分析输入的数据(后果)。options属性在数组中保持不变,无论“结果”是优点还是缺点。
Object.assign ,array.push,array.concat,new Object,用于带有条件语句/switch语句等的循环。