Javascript json声明后未定义js数组

Javascript json声明后未定义js数组,javascript,json,angularjs,Javascript,Json,Angularjs,我是一名新的web开发人员,面临以下问题: “无法读取未定义的属性'length'” 我的代码: var data=(); for(var i;i<parseInt(window.localStorage["numOfInserts"]);i++){ data["category_name"]=localStorage.getItem(("category_name_"+i).toString()); data["category_id"]=localSt

我是一名新的web开发人员,面临以下问题:

“无法读取未定义的属性'length'”

我的代码:

var data=();

for(var i;i<parseInt(window.localStorage["numOfInserts"]);i++){
        data["category_name"]=localStorage.getItem(("category_name_"+i).toString());
        data["category_id"]=localStorage.getItem(("category_id_"+i).toString());
        data["provider_name"]=localStorage.getItem(("provider_name_"+i).toString());
        data["provider_id"]=localStorage.getItem(("provider_id_"+i).toString());
        data["appointment_date"]=localStorage.getItem(("appointment_date_"+i).toString());
        data["appointment_time"]=localStorage.getItem(("appointment_time_"+i).toString());
} 
$scope.allAppointments=dataArray;

for(var i=0;i<dataArray.length;i++){
       $scope.showme[i]=false;
}
给我和以前一样的错误


请帮助我

看起来您正在尝试创建关联数组,因此第一行应该是

var data = {};
下一部分很好,但看起来您需要枚举键


for(var i=0;i您需要在循环之前创建一个数组(
dataArray
),并在每次迭代中创建一个新对象,设置该对象的属性值,然后将该对象添加到数组中,如下所示

var dataArray = [],
    data, numOfInserts = parseInt(window.localStorage["numOfInserts"]);

for (var i = 0; i < numOfInserts; i++) {
    data = {};
    data["category_name"] = localStorage.getItem(("category_name_" + i).toString());
    data["category_id"] = localStorage.getItem(("category_id_" + i).toString());
    data["provider_name"] = localStorage.getItem(("provider_name_" + i).toString());
    data["provider_id"] = localStorage.getItem(("provider_id_" + i).toString());
    data["appointment_date"] = localStorage.getItem(("appointment_date_" + i).toString());
    data["appointment_time"] = localStorage.getItem(("appointment_time_" + i).toString());
    dataArray.push(data)
}
$scope.allAppointments = dataArray;

for (var i = 0; i < dataArray.length; i++) {
    $scope.showme[i] = false;
}
var dataArray=[],
数据,numOfInserts=parseInt(window.localStorage[“numOfInserts”]);
对于(var i=0;i
我想这就是您要查找的内容,请参见代码注释:

// Create an array using []
var data = [];

// Get the count once
var count = parseInt(window.localStorage["numOfInserts"]);

// Be sure to initialize `i` to 0
for (var i = 0; i < count; i++) {
    // Create an object to push onto the array, using the information
    // from local storage. Note that you don't need toString() here.
    // Once we've created the object (the {...} bit), we push it onto
    // the array
    data.push({
        category_name: localStorage.getItem("category_name_"+i),
        category_id: localStorage.getItem("category_id_"+i),
        provider_name: localStorage.getItem("provider_name_"+i),
        provider_id: localStorage.getItem("provider_id_"+i),
        appointment_date: localStorage.getItem("appointment_date_"+i),
        appointment_time: localStorage.getItem("appointment_time_"+i)
    });
} 
//使用[]创建数组
var数据=[];
//数一数
var count=parseInt(window.localStorage[“numOfInserts”]);
//确保将'i'初始化为0
对于(变量i=0;i
这也有同样的作用,只是更加冗长,因此可以帮助您更清楚地了解发生了什么:

// Create an array using []
var data = [];

// Get the count once
var count = parseInt(window.localStorage["numOfInserts"]);

// Be sure to initialize `i` to 0
for (var i = 0; i < count; i++) {
    // Create an object to push onto the array
    var obj = {};

    // Fill it in from local storage. Note that you don't need toString() here.
    obj.category_name = localStorage.getItem("category_name_"+i);
    obj.category_id = localStorage.getItem("category_id_"+i);
    obj.provider_name = localStorage.getItem("provider_name_"+i);
    obj.provider_id = localStorage.getItem("provider_id_"+i);
    obj.appointment_date = localStorage.getItem("appointment_date_"+i);
    obj.appointment_time = localStorage.getItem("appointment_time_"+i);

    // Push the object onto the array
    data.push(obj);
} 
//使用[]创建数组
var数据=[];
//数一数
var count=parseInt(window.localStorage[“numOfInserts”]);
//确保将'i'初始化为0
对于(变量i=0;i
什么是
dataArray
var data=();
是一个语法错误。“但我尝试将其转换为json”,这不是json。请检查dataArray对象
// Create an array using []
var data = [];

// Get the count once
var count = parseInt(window.localStorage["numOfInserts"]);

// Be sure to initialize `i` to 0
for (var i = 0; i < count; i++) {
    // Create an object to push onto the array, using the information
    // from local storage. Note that you don't need toString() here.
    // Once we've created the object (the {...} bit), we push it onto
    // the array
    data.push({
        category_name: localStorage.getItem("category_name_"+i),
        category_id: localStorage.getItem("category_id_"+i),
        provider_name: localStorage.getItem("provider_name_"+i),
        provider_id: localStorage.getItem("provider_id_"+i),
        appointment_date: localStorage.getItem("appointment_date_"+i),
        appointment_time: localStorage.getItem("appointment_time_"+i)
    });
} 
// Create an array using []
var data = [];

// Get the count once
var count = parseInt(window.localStorage["numOfInserts"]);

// Be sure to initialize `i` to 0
for (var i = 0; i < count; i++) {
    // Create an object to push onto the array
    var obj = {};

    // Fill it in from local storage. Note that you don't need toString() here.
    obj.category_name = localStorage.getItem("category_name_"+i);
    obj.category_id = localStorage.getItem("category_id_"+i);
    obj.provider_name = localStorage.getItem("provider_name_"+i);
    obj.provider_id = localStorage.getItem("provider_id_"+i);
    obj.appointment_date = localStorage.getItem("appointment_date_"+i);
    obj.appointment_time = localStorage.getItem("appointment_time_"+i);

    // Push the object onto the array
    data.push(obj);
}