Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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数组或对象的区别以及如何获取索引。_Javascript - Fatal编程技术网

Javascript数组或对象的区别以及如何获取索引。

Javascript数组或对象的区别以及如何获取索引。,javascript,Javascript,从下面的代码可以看出,函数菜单是用三个参数调用的。 从菜单函数中,如何根据调用菜单的对象获取名称或差异名称 var menus = { name: menu('Control', [ { label: 'Public Class My Robot', trigger: true, script: 'public class MyRobot extends SimpleRobot\n{\n[[next]]\n}\n',

从下面的代码可以看出,函数菜单是用三个参数调用的。 从菜单函数中,如何根据调用菜单的对象获取名称或差异名称

var menus = {
    name: menu('Control', [
    {
        label: 'Public Class My Robot',
        trigger: true,
        script: 'public class MyRobot extends SimpleRobot\n{\n[[next]]\n}\n',
        helptext: "Beginning fo your program",
        depend: "package edu.team2648.frcEasyJ;"
    }], false),
    diffname: menu('Control2', [
    {
        label: 'Public Class My Robot',
        trigger: true,
        script: 'public class MyRobot extends SimpleRobot\n{\n[[next]]\n}\n',
        helptext: "Beginning fo your program",
        depend: "package edu.team2648.frcEasyJ;"
    }], false),
};
还有,菜单是什么类型的变量?(数组、对象等) 以下两段代码之间的区别是什么:

var test = ["str1","str2","str3","str4"];

var test2 = {id:"str1",id2:"str2",id3:"str3",id4:"str4"};

test是一个数组,test2是一个对象


菜单是一个对象。

test是一个数组,test2是一个对象


菜单是一个对象。

由于JavaScript中没有关联数组,如果要分配key:val对并模拟关联数组功能和引用行为,则需要使用对象

var测试=[“str1”、“str2”、“str3”、“str4”]表示数字索引数组。我们看到了对数组进行分组的方括号,并且只看到了逗号分隔的值。如果我们想访问'str3',我们将使用
test[2]

var test2={id:“str1”,id2:“str2”,id3:“str3”,id4:“str4”}是一个对象。我们可以看到对对象参数进行分组的大括号,还可以看到由冒号分割的key:val对。如果我们想访问'str3',我们将使用
test2.id3

初学者可能会感到困惑的一件事是,对象可以包含数组,而数组可以包含对象,因此方括号和大括号可以混合在一起,并且不会立即变得明显。可以通过数组对象创建数组,如
var arr=new array()
。要使事情简单,请将它们分隔开来,并根据它们的预期行为调用它们:
[]
=array和
{}
=object

在您的示例中:

var menus = {
    name: menu('Control', [
    {
        label: 'Public Class My Robot',
        ....

您可以看到
菜单
是一个对象,因为它被指定给了一个大括号。您可以看到,
name
是一个键,
菜单('Control'
是一个值,在本例中它恰好是一个函数。它的第一个参数是一个明显的字符串,第二个参数是一个数组
[]
,它只包含一个值,这是一个对象
{}
具有key:val对-
标签
作为键,而
'Public Class My Robot'
作为值,在本例中它只是一个字符串。

由于JavaScript中没有关联数组,如果您想分配key:val对并模拟关联数组功能和引用beh,则需要使用对象阿维奥

var test=[“str1”、“str2”、“str3”、“str4”];
表示数字索引数组。我们看到了对数组进行分组的方括号,并且只看到逗号分隔的值。如果我们想访问“str3”,我们将使用
test[2]

var test2={id:“str1”,id2:“str2”,id3:“str3”,id4:“str4”};
是一个对象。我们可以看到对对象参数进行分组的花括号,并且可以看到由冒号分隔的key:val对。如果我们想访问“str3”,我们将使用
test2.id3

初学者可能会感到困惑的一件事是,对象可以包含数组,而数组可以包含对象,因此方括号和大括号可以混合在一起,而不是很明显。您可以通过数组对象创建数组,如
var arr=new array()
。要使事情简单,请将它们分隔开来,并根据它们的预期行为调用它们:
[]
=array和
{}
=object

在您的示例中:

var menus = {
    name: menu('Control', [
    {
        label: 'Public Class My Robot',
        ....

您可以看到
菜单
是一个对象,因为它被分配给了一个大括号。您可以看到
名称
是一个键,
菜单('Control'
是一个值,在本例中它恰好是一个函数。它的第一个参数是一个明显的字符串,第二个参数是一个数组
[]
只包含一个值,它是一个对象
{}
其中key:val pairs-
label
是键,而
'Public Class My Robot'
是值,在本例中它只是一个字符串。

test
变量分配给
数组
文本。
test2
变量分配给
对象
文本

我已经读过,但无法证实,从技术上讲,
Array
s和
Object
s与其他语言中的哈希映射结构最为相似,区别在于,虽然
Array
只有
Number
键,
对象
可以有任何类型作为键类型(特别是
Strings
)。 JavaScript中不建议使用
Array
s中的
String
键(即使用关联
Array
s)

菜单
变量被分配给
对象
文本

请澄清你的意思:

从菜单函数中,如何根据调用菜单的对象获取名称或差异名称

var menus = {
    name: menu('Control', [
    {
        label: 'Public Class My Robot',
        trigger: true,
        script: 'public class MyRobot extends SimpleRobot\n{\n[[next]]\n}\n',
        helptext: "Beginning fo your program",
        depend: "package edu.team2648.frcEasyJ;"
    }], false),
    diffname: menu('Control2', [
    {
        label: 'Public Class My Robot',
        trigger: true,
        script: 'public class MyRobot extends SimpleRobot\n{\n[[next]]\n}\n',
        helptext: "Beginning fo your program",
        depend: "package edu.team2648.frcEasyJ;"
    }], false),
};
如果
菜单
函数
返回任何类型的对象,则键
name
diffname
将映射到该值:即

var nameValue = menus.name ;
var nameDiffValue = menus.diffname ;

test
变量被分配给
数组
文本。
test2
变量被分配给
对象
文本

我已经读过,但无法证实,从技术上讲,
Array
s和
Object
s与其他语言中的哈希映射结构最为相似,区别在于,虽然
Array
只有
Number
键,
对象
可以有任何类型作为键类型(特别是
Strings
)。 JavaScript中不建议使用
Array
s中的
String
键(即使用关联
Array
s)

菜单
变量被分配给
对象
文本

请澄清你的意思:

从菜单函数中,如何根据调用菜单的对象获取名称或差异名称

var menus = {
    name: menu('Control', [
    {
        label: 'Public Class My Robot',
        trigger: true,
        script: 'public class MyRobot extends SimpleRobot\n{\n[[next]]\n}\n',
        helptext: "Beginning fo your program",
        depend: "package edu.team2648.frcEasyJ;"
    }], false),
    diffname: menu('Control2', [
    {
        label: 'Public Class My Robot',
        trigger: true,
        script: 'public class MyRobot extends SimpleRobot\n{\n[[next]]\n}\n',
        helptext: "Beginning fo your program",
        depend: "package edu.team2648.frcEasyJ;"
    }], false),
};
如果
菜单