Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调用JSON数组时返回未定义?_Javascript_Arrays_Json - Fatal编程技术网

Javascript 调用JSON数组时返回未定义?

Javascript 调用JSON数组时返回未定义?,javascript,arrays,json,Javascript,Arrays,Json,我试图在另一个JSON数组中创建一个JSON数组 我认为我做得对,但是当我调用第二个数组时,它返回undefined JSON文件: var files = [ {"Files" : [ {"file1" : "file1"}, {"file2" : "file2"}, {"file3" : "file3"} ]}, {"Texts" : [ {"file4" : "file4"}, {"f

我试图在另一个JSON数组中创建一个JSON数组
我认为我做得对,但是当我调用第二个数组时,它返回undefined

JSON文件:

var files = [
    {"Files" : [
        {"file1" : "file1"},
        {"file2" : "file2"},
        {"file3" : "file3"}
    ]},

    {"Texts" : [
        {"file4" : "file4"},
        {"file5" : "file5"},
        {"file6" : "file6"}
    ]}
];
当我尝试这个命令时,它工作-

console.log(files[0]); // Works, returns the array
但当我尝试这个命令时,它不起作用-

console.log(files[0][1]); // Not working, return undefined
我希望这将返回file2

我做错了什么

编辑:
脚本从服务器获取类似的JSON文件,脚本需要在JSON中循环。因此,将名称(文件、文本、文件1、文件2等)视为未知

console.log(files[0]["Files"])  // will return array with file 1-3
console.log(files[0]["Texts"])  // will return array with file 4-6   

在您的示例中,
文件[0][1]
像这样用于json

var files = [
    [
        {"file1" : "file1"},
        {"file2" : "file2"},
        {"file3" : "file3"}
    ],
    [
        {"file4" : "file4"},
        {"file5" : "file5"},
        {"file6" : "file6"}
    ]
];  
编辑
在这种情况下,您可以对循环使用next

for (var key in files[0])
{
   files[0][key] // here key is "Files", this will return files 1-3       
}​

在您的示例中,
文件[0][1]
像这样用于json

var files = [
    [
        {"file1" : "file1"},
        {"file2" : "file2"},
        {"file3" : "file3"}
    ],
    [
        {"file4" : "file4"},
        {"file5" : "file5"},
        {"file6" : "file6"}
    ]
];  
编辑
在这种情况下,您可以对循环使用next

for (var key in files[0])
{
   files[0][key] // here key is "Files", this will return files 1-3       
}​
这:

如果不记录数组,则该对象是数组的第一个元素。要获取内部数组,必须获取该对象的“Files”属性:

console.log(files[0].Files[1]);
它将记录的不仅仅是字符串“file2”,而是整个对象,
{file2:“file2”}
。在JavaScript中,数字索引无法访问具有字符串属性名称的对象属性。即,在对象中:

{ "foo": "hello world" }
根本没有
[0]
属性。JavaScript中的数组也是对象,可以具有字符串命名的属性,但它们与数字索引属性的集合是分开的。

这是:

如果不记录数组,则该对象是数组的第一个元素。要获取内部数组,必须获取该对象的“Files”属性:

console.log(files[0].Files[1]);
它将记录的不仅仅是字符串“file2”,而是整个对象,
{file2:“file2”}
。在JavaScript中,数字索引无法访问具有字符串属性名称的对象属性。即,在对象中:

{ "foo": "hello world" }

根本没有
[0]
属性。JavaScript中的数组也是对象,可以具有字符串命名的属性,但它们与数字索引属性的集合是分开的。

数组位于文件属性的内部:

console.log(files[0].Files[0]);
console.log(files[0].Files[1]);

数组位于“文件”属性的内部:

console.log(files[0].Files[0]);
console.log(files[0].Files[1]);

脚本从服务器获取类似的JSON文件,脚本需要在JSON中循环。所以把名字想象成未知的..谢谢!现在我有了主意!脚本从服务器获取类似的JSON文件,脚本需要在JSON中循环。所以把名字想象成未知的..谢谢!现在我有了主意!