gpt4 book ai didi

javascript - 数组中的对象

转载 作者:行者123 更新时间:2023-11-28 02:11:24 27 4
gpt4 key购买 nike

代码如下所示:

var figury = new Array("kwadrat", "kolo", "trojkat_rownoboczny", "trojkat_prostokatny", "heksagon", "trapez");
var kolory = new Array("blue", "green", "red", "yellow");

var losowanie_figur = function(wylosowane_figury) {
for(var i = 0; i <= 3; i++)
wylosowane[i] = { figura: figury[losowe[i]] };
}
var losowanie_kolorow = function(wylosowane_kolory) {
for(var i = 0; i <= 3; i++)
wylosowane[i] = { kolor: kolory[losowe[i]] };
}

我想做的是用颜色值更新数组,但我得到的是以前的值被覆盖。我正在使用随机 f

这就是我得到的:

{ '0': { kolor: 'red' },
'1': { kolor: 'green' },
'2': { kolor: 'yellow' },
'3': { kolor: 'blue' } }

我真正想要的是:

{ '0': { figura: 'kwadrat', kolor: 'green' },
'1': { figura: 'heksagon', kolor: 'red' },
'2': { figura: 'trapez', kolor: 'blue' },
'3': { figura: 'trojkat_prostokatny', kolor: 'yellow' } }

最佳答案

你可以这样做:

var losowanie_kolorow = function(wylosowane_kolory){
for(var i=0;i<=3;i++)
wylosowane[i].kolor =kolory[losowe[i];
}

您需要设置对象的属性,而不是将整个数组值设置为新对象。

顺便说一句,您从未在这段代码中设置wylosowane,我假设它是为了简化而被删除的?您也永远不会使用函数的参数。既然如此,最好根本没有参数。

通常认为将数组声明为最佳实践

var kolory = ["blue", "green", "red", "yellow"];

而不是

var kolory = new Array("blue", "green", "red", "yellow");

大多数人认为它更具可读性,并且它避免了一些奇怪的边缘情况(例如,new Array(3) 创建一个长度为 3 的空数组,而不是长度为 1 和 3 的数组在 0 索引处)

关于javascript - 数组中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17035747/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com