javascript - 仅返回数组中的一个对象
问题描述
if (lastUserMessage === '/love') {
const love = [];
newlove = prompt("What do you love?", "Thing you love.");
love.push(newlove);
localStorage.setItem('love', JSON.stringify(love));
botMessage = 'Awesome.';
}
if (lastUserMessage === 'What do I. love?') {
var love2 = JSON.parse(localStorage.getItem("love"));
botMessage = love2;
}
它假设在数组中存储超过 1 个对象,但我只得到 1 个值。
解决方案
目前,您总是将您的值初始化为一个空数组:
const love = [];
但听起来您希望它将先前存储的值保留在本地存储中。为此,只需将其初始化为这些值:
const love = JSON.parse(localStorage.getItem('love'));
作为一个额外的步骤,您还可以null
检查存储的数组,以防这是第一次运行代码并且尚未存储任何内容。未经测试,但我怀疑这样的事情可能会奏效:
const love = JSON.parse(localStorage.getItem('love') || '[]');
如果该项目不存在,则该想法getItem
将返回,因此在这种情况下,您将传递给并从一个空数组开始。null
'[]'
JSON.parse
推荐阅读
- tensorflow - 如何使用 tensorflow 模型检查点以 .h5 格式保存 tensorflow 模型?
- xamarin.forms - 如何制作带有图标的进度条?
- c - 如何正确使用 S_ISREG 函数
- c# - EF .Net Core 从控制器到达类
- c# - 如何使用 Simple Injector 调度来自中介的呼叫
- sql - 如果计数大于零则更新,否则不做任何事情
- android - 使用 Dagger 2 管理大型多库模块项目中的依赖项
- java - 如何添加 Onclick 按钮以显示 LineChart JavaFX
- r - 使用“imager”包中的 load.image() 函数在 R 中加载多个图像
- python - 无法在图像上的鼠标单击区域写入文本