我在将newTask推送到allTasks时遇到错误,错误为TypeError: allTasks.push is not a function
data
是使用fs
var allTasks = JSON.parse(data);
var newTask = {
id: Date.now(),
title: "BAM",
description: "BOOM",
image: "SLAM"
};
allTasks.push(newTask);
我在解析JSON之前尝试将allTasks
声明为数组但是这也不起作用。
data.json是:
{
"tasks": [{
"id": 1,
"title": "something",
"description": "do some shit",
"image": "image URL1"
}, {
"id": 2,
"title": "something2",
"description": "do some shit2",
"image": "image URL2"
}]
}
答案 0 :(得分:3)
从JSON字符串解析后的data
是一个对象,因此.push
无法正常工作。
看起来你想做的是allTasks.tasks.push(newTask);
答案 1 :(得分:1)
如果你这样做:
console.log("typeof allTasks: " + (typeof allTasks));
它显示什么?如果它显示一个对象,请尝试:
console.log("typeof allTasks.push: " + (typeof allTasks['push']));
那应该显示功能,如果它没有那就是你的问题,allTasks不是一个数组。
看看你的编辑,我认为你需要的是:
allTasks["tasks"].push(newTask);