我正在努力推动
data.push({"country": "IN"});
作为新的ID和json字符串的值。但它给出了以下错误
Uncaught TypeError: data.push is not a function
data{"name":"ananta","age":"15"}
提前谢谢您的回复
我正在努力推动
data.push({"country": "IN"});
作为新的ID和json字符串的值。但它给出了以下错误
Uncaught TypeError: data.push is not a function
data{"name":"ananta","age":"15"}
提前谢谢您的回复
data.country = 'IN'
Answers:
要使用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;
注意:请保持一致。在我的示例中,一个数组包含对象属性name
,age
而另一个仅包含对象属性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 = [{}, {}, {}];
您的data
变量包含一个对象,而不是一个数组,并且对象不具有push
作为错误状态的功能。要执行您需要的操作,可以执行以下操作:
data.country = 'IN';
要么
data['country'] = 'IN';
var propertyName = 'country'; data[propertyName] = 'IN';
试试下面的代码$ scope.DSRListGrid.data = data; 这个用于源数据
for (var prop in data[0]) {
if (data[0].hasOwnProperty(prop)) {
$scope.ListColumns.push(
{
"name": prop,
"field": prop,
"width": 150,
"headerCellClass": 'font-12'
}
);
}
}
console.log($scope.ListColumns);
确保仅压入一个数组,并且如果它们是错误的,例如Uncaught TypeError:data.push不是函数**,然后检查数据类型, 可以通过consol.log(data)做到这一点, 希望对您有所帮助
需要记住的一件事是,仅使用array []而不使用object {}进行推送。
如果要在n内添加Like对象o
a={ b:"c",
D:"e",
F: {g:"h",
I:"j",
k:{ l:"m"
}}
}
a.F.k.n = { o: "p" };
a.F.k.n = { o: "p" };
console.log(a);
data
不是Array
。如果是object
,只需设置date.country = 'IN'
。如果它是“ JSON字符串”,则最好先对其进行反序列化。