Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays - Fatal编程技术网

Javascript 创建对象列表数组不正确

Javascript 创建对象列表数组不正确,javascript,arrays,Javascript,Arrays,有人能告诉我为什么这个脚本不能正常工作以及如何修复它吗 问题是,当使用alert()调试存储值时,BuyerGuideData[“English”]的数据显示为西班牙语,而不是英语。语言 var enumLanguage = { English: 'English', Spanish: 'Spanish' } var buyersGuideData = []; var foo = { Language: '', WarrantyFlag: 'No' } //Build list array o

有人能告诉我为什么这个脚本不能正常工作以及如何修复它吗

问题是,当使用alert()调试存储值时,BuyerGuideData[“English”]的数据显示为西班牙语,而不是英语。语言

var enumLanguage = { English: 'English', Spanish: 'Spanish' }
var buyersGuideData = [];
var foo = { Language: '', WarrantyFlag: 'No' }

//Build list array of objects...
buyersGuideData[enumLanguage.English] = foo;
buyersGuideData[enumLanguage.English].Language = "English";
buyersGuideData[enumLanguage.Spanish] = foo;
buyersGuideData[enumLanguage.Spanish].Language = "Spanish";

alert(buyersGuideData[enumLanguage.English].Language);  //Output was displayed as "Spanish", not English...
alert(buyersGuideData[enumLanguage.Spanish].Language);  //Output was displayed as "Spanish"...
[编辑-新示例]-这就是你的意思吗

buyersGuideData[enumLanguage.English] = { Language: '', WarrantyFlag: 'No' }
buyersGuideData[enumLangauge.Spanish] = { Langauge: '', WarrantyFlag: 'No' }

buyersGuideData[enumLanguage.English].Language = "English";
buyersGuideData[enumLangauge.Spanish].Language = "Spanish";

将同一对象指定给两个不同的位置,然后修改对象两次

您需要的是两个不同的对象。创建两次:

buyersGuideData[enumLanguage.English] = { ... }

如果要从模板开始,可以使用。

将同一对象分配到两个不同的位置,然后修改该对象两次

您需要的是两个不同的对象。创建两次:

buyersGuideData[enumLanguage.English] = { ... }

如果要从模板开始,可以使用。

将同一对象分配到两个不同的位置,然后修改该对象两次

您需要的是两个不同的对象。创建两次:

buyersGuideData[enumLanguage.English] = { ... }

如果要从模板开始,可以使用。

将同一对象分配到两个不同的位置,然后修改该对象两次

您需要的是两个不同的对象。创建两次:

buyersGuideData[enumLanguage.English] = { ... }

如果要从模板开始,可以使用。

出现语法错误:

alert(buyersGuideData[enumLanguage.English].Langauge);  //Output was displayed as "Spanish", not English...
alert(buyersGuideData[enumLanguage.Spanish].Langauge); 

Langauge错误,请尝试Language

您有语法错误:

alert(buyersGuideData[enumLanguage.English].Langauge);  //Output was displayed as "Spanish", not English...
alert(buyersGuideData[enumLanguage.Spanish].Langauge); 

Langauge错误,请尝试Language

您有语法错误:

alert(buyersGuideData[enumLanguage.English].Langauge);  //Output was displayed as "Spanish", not English...
alert(buyersGuideData[enumLanguage.Spanish].Langauge); 

Langauge错误,请尝试Language

您有语法错误:

alert(buyersGuideData[enumLanguage.English].Langauge);  //Output was displayed as "Spanish", not English...
alert(buyersGuideData[enumLanguage.Spanish].Langauge); 

Langauge是错误的,请尝试使用Language

您只需将函数用作对象生成器即可解决此问题。用如下foo函数替换foo对象

var foo = function () {
    return {
        Language: '',
        WarrantyFlag: 'No'
    };
}
然后更改指定对象的方式

buyersGuideData[enumLanguage.English] = foo();
buyersGuideData[enumLanguage.English].Language = "English";
buyersGuideData[enumLanguage.Spanish] = foo();
buyersGuideData[enumLanguage.Spanish].Language = "Spanish";

每次调用foo时,都会实例化一个全新的对象。在您的示例中,您使用的是同一个对象,这就是显示未检查行为的原因。

您只需将函数用作对象生成器即可解决此问题。用如下foo函数替换foo对象

var foo = function () {
    return {
        Language: '',
        WarrantyFlag: 'No'
    };
}
然后更改指定对象的方式

buyersGuideData[enumLanguage.English] = foo();
buyersGuideData[enumLanguage.English].Language = "English";
buyersGuideData[enumLanguage.Spanish] = foo();
buyersGuideData[enumLanguage.Spanish].Language = "Spanish";

每次调用foo时,都会实例化一个全新的对象。在您的示例中,您使用的是同一个对象,这就是显示未检查行为的原因。

您只需将函数用作对象生成器即可解决此问题。用如下foo函数替换foo对象

var foo = function () {
    return {
        Language: '',
        WarrantyFlag: 'No'
    };
}
然后更改指定对象的方式

buyersGuideData[enumLanguage.English] = foo();
buyersGuideData[enumLanguage.English].Language = "English";
buyersGuideData[enumLanguage.Spanish] = foo();
buyersGuideData[enumLanguage.Spanish].Language = "Spanish";

每次调用foo时,都会实例化一个全新的对象。在您的示例中,您使用的是同一个对象,这就是显示未检查行为的原因。

您只需将函数用作对象生成器即可解决此问题。用如下foo函数替换foo对象

var foo = function () {
    return {
        Language: '',
        WarrantyFlag: 'No'
    };
}
然后更改指定对象的方式

buyersGuideData[enumLanguage.English] = foo();
buyersGuideData[enumLanguage.English].Language = "English";
buyersGuideData[enumLanguage.Spanish] = foo();
buyersGuideData[enumLanguage.Spanish].Language = "Spanish";


每次调用foo时,都会实例化一个全新的对象。在您的示例中,您使用的是同一对象,这就是显示未经检查行为的原因。

修复了输入错误。我无法在两个不同的工作站之间复制和粘贴,不是我。其他人做了。这修复了一个表面问题。修复了打字错误。我无法在两个不同的工作站之间复制和粘贴,不是我。其他人做了。这修复了一个表面问题。修复了打字错误。我无法在两个不同的工作站之间复制和粘贴,不是我。其他人做了。这修复了一个表面问题。修复了打字错误。我无法在两个不同的工作站之间复制和粘贴,不是我。有人这样做了。这解决了一个表面问题。那怎么办?我想如果分配了一个对象,它会创建一个单独的副本。这很简单。你不能把同一个对象放在两个不同的地方,期望它以两种不同的方式运行。正在操作单数
语言
属性。你需要创建两个对象,要么是长格式,要么是复制。“我想如果一个对象被分配,它会创建一个单独的副本。”不,这就是你的意思。请参阅“我的编辑部分到原始发布”。另外,如果可以指定一个新的变量实例,我们为什么要编写重复脚本呢?“新的变量实例”意味着创建一个副本,这必须显式完成
x=a
y=a
都指向同一个对象,因此对
x
的任何修改都会影响
y
。这是如何工作的?我想如果分配了一个对象,它会创建一个单独的副本。这很简单。你不能把同一个对象放在两个不同的地方,期望它以两种不同的方式运行。正在操作单数
语言
属性。你需要创建两个对象,要么是长格式,要么是复制。“我想如果一个对象被分配,它会创建一个单独的副本。”不,这就是你的意思。请参阅“我的编辑部分到原始发布”。另外,如果可以指定一个新的变量实例,我们为什么要编写重复脚本呢?“新的变量实例”意味着创建一个副本,这必须显式完成
x=a
y=a
都指向同一个对象,因此对
x
的任何修改都会影响
y
。这是如何工作的?我想如果分配了一个对象,它会创建一个单独的副本。这很简单。你不能把同一个对象放在两个不同的地方,期望它以两种不同的方式运行。正在操作单数
语言
属性。你需要创建两个对象,要么是长格式,要么是复制。“我想如果一个对象被分配,它会创建一个单独的副本。”不,这就是你的意思。请参阅“我的编辑部分到原始发布”。另外,如果可以指定一个新的变量实例,我们为什么要编写重复脚本呢?“新的变量实例”意味着创建一个副本,这必须显式完成
x=a
y=a
都指向同一个对象,因此对
x
的任何修改都会影响
y
。这是如何工作的?我想如果分配了一个对象,它会创建一个单独的副本。这很简单。你不能把山姆放进去