Я пытаюсь нажать
data.push({"country": "IN"});
как новый идентификатор и значение для строки json. но он дает следующую ошибку:
Uncaught TypeError: data.push is not a function
data{"name":"ananta","age":"15"}
Спасибо за ваш ответ
Я пытаюсь нажать
data.push({"country": "IN"});
как новый идентификатор и значение для строки json. но он дает следующую ошибку:
Uncaught TypeError: data.push is not a function
data{"name":"ananta","age":"15"}
Спасибо за ваш ответ
Чтобы использовать функцию push массива, ваш var должен быть массивом.
Измените 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 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" } );
Таким образом, вы можете выполнять итерацию и всегда получать свойства, даже если они пустые, нулевые или неопределенные.
редактировать
Классные вещи, чтобы знать:
var array = new Array();
похож на:
var array = [];
Также:
var object = new Object();
похож на:
var object = {};
Вы также можете комбинировать их:
var objectArray = [{}, {}, {}];
Ваша переменная data
содержит объект, а не массив, а объекты не имеют функции push
по мере возникновения ошибки. Чтобы сделать то, что вам нужно, вы можете сделать это:
data.country = 'IN';
или
data['country'] = 'IN';
вы можете использовать push-метод, только если объект является массивом:
var data = new Array();
data.push({"country": "IN"}).
ИЛИ
data['country'] = "IN"
если это просто объект, который вы можете использовать
data.country = "IN";
Также убедитесь, что имя переменной не является каким-то языковым ключевым словом. Например, следующее приводит к тому же типу ошибки:
var history = [];
history.push("what a mess");
заменить его на:
var history123 = [];
history123.push("pray for a better language");
работает как положено.
Попробуйте этот код $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) надеюсь, что это поможет
У меня тоже есть эта проблема, и это мой код: пожалуйста, помогите мне:
function addName() {
var addNew = prompt("please enter the name to add:");
name.push(addNew); }
if (request === '...') {
addName()
}
Я думаю, что вы установили это
var data = [];
но через некоторое время ты делаешь это
data = 'some things';
тогда data.push('')
не работает.
У меня тоже есть эта проблема, и это мой код: пожалуйста, помогите мне:
function addName() {
var addNew = prompt("please enter the name to add:");
name.push(addNew) ; }
if (request === '...') {
addName()
}