Ana*_*sad 58 javascript jquery json
我想推
data.push({"country": "IN"});
Run Code Online (Sandbox Code Playgroud)
作为json字符串的新id和值.但它会出现以下错误
Uncaught TypeError: data.push is not a function
data{"name":"ananta","age":"15"}
Run Code Online (Sandbox Code Playgroud)
预先感谢您的回复
Cag*_*bay 90
要使用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"});
..
Run Code Online (Sandbox Code Playgroud)
包含的Array项将是typeof Object,您可以执行以下操作:
var text = "You are " + data[0]->age + " old and come from " + data[0]->country;
注意:尽量保持一致.在我的示例中,一个数组包含对象属性name,age而另一个数组只包含对象属性country.如果我用它迭代它for或者forEach然后我不能总是检查一个属性,因为我的例子包含改变的项目.
完美将是: data.push({ "name": "Max", "age": "5", "country": "Anywhere" } );
因此,您可以迭代并始终获取属性,即使它们为空,null或未定义.
编辑
很酷的东西要知道:
var array = new Array();
Run Code Online (Sandbox Code Playgroud)
类似于:
var array = [];
Run Code Online (Sandbox Code Playgroud)
也:
var object = new Object();
Run Code Online (Sandbox Code Playgroud)
类似于:
var object = {};
Run Code Online (Sandbox Code Playgroud)
你也可以把它们结合起来:
var objectArray = [{}, {}, {}];
Run Code Online (Sandbox Code Playgroud)
您的data变量包含一个对象,而不是一个数组,并且对象没有该push函数作为错误状态.要做你需要的,你可以这样做:
data.country = 'IN';
Run Code Online (Sandbox Code Playgroud)
要么
data['country'] = 'IN';
Run Code Online (Sandbox Code Playgroud)
还要确保变量的名称不是某种语言关键字。例如,以下内容会产生相同类型的错误:
var history = [];
history.push("what a mess");
Run Code Online (Sandbox Code Playgroud)
替换为:
var history123 = [];
history123.push("pray for a better language");
Run Code Online (Sandbox Code Playgroud)
可以正常工作。
小智 6
我想你把它设置为
var data = [];
Run Code Online (Sandbox Code Playgroud)
但过了一段时间你把它变成了这样:
data = 'some thing which is not an array';
Run Code Online (Sandbox Code Playgroud)
then
data.push('')将不起作用,因为它不再是数组。
只有当对象是一个数组时才能使用push方法:
var data = new Array();
data.push({"country": "IN"}).
Run Code Online (Sandbox Code Playgroud)
要么
data['country'] = "IN"
Run Code Online (Sandbox Code Playgroud)
如果它只是一个你可以使用的对象
data.country = "IN";
Run Code Online (Sandbox Code Playgroud)
需要记住的一件事是“push work only with array[]not” object{}。
如果你想像这样o在里面添加对象:n
a = {
b:"c",
D:"e",
F: {
g:"h",
I:"j",
k: {
l:"m"
}
}
}
a.F.k.n = { o: "p" };
console.log(a);Run Code Online (Sandbox Code Playgroud)