一尘不染

未捕获的TypeError:data.push不是函数

json

我正在努力推动

data.push({"country": "IN"});

作为新的ID和json字符串的值。但是它给出了以下错误

Uncaught TypeError: data.push is not a function

data{"name":"ananta","age":"15"}

提前谢谢您的回复


阅读 325

收藏
2020-07-27

共1个答案

一尘不染

要使用Array的push函数,您的var必须是一个Array。

更改data{"name":"ananta","age":"15"}为以下内容:

var data = [
    { 
        "name": "ananta",
        "age": "15",
        "country": "Atlanta"
    }
];

data.push({"name": "Tony Montana", "age": "99"});

data.push({"country": "IN"});

..

包含的数组项将是typeof对象,您可以执行以下操作:

var text = "You are " + data[0]->age + " old and come from " + data[0]->country;

注意:请保持一致。在我的示例中,一个数组包含对象属性nameage而另一个仅包含对象属性country。如果我使用for或进行迭代,forEach那么我将无法始终检查一个属性,因为我的示例包含了变化的项目。

完美的将是: data.push({ "name": "Max", "age": "5", "country": "Anywhere" } );

因此,即使属性为空,null或未定义,您也可以进行迭代并始终​​可以获取它们。

编辑

很酷的事情要知道:

var array = new Array();

类似于:

var array = [];

也:

var object = new Object();

类似于:

var object = {};

您还可以将它们结合起来:

var objectArray = [{}, {}, {}];
2020-07-27