gpt4 book ai didi

javascript - 如何在循环内创建具有唯一变量名称的动态对象?

转载 作者:行者123 更新时间:2023-12-03 01:07:25 27 4
gpt4 key购买 nike

我正在尝试以编程方式在JS中创建4个不同的音频对象。我在此线程中看到了与此类似的线程:"How do I create dynamic variable names inside a loop?"
但是,变量名的更改会在循环阶段利用。尽管我不确定如何在循环中以编程方式使用该关键字,但在线程内部也有使用this关键字的答案。
尝试:

var buttonColours = ["red", "blue", "green", "yellow"]
var sounds = [];

for (var i=0; i < buttonColours.length; i++) {
sounds[i] = new Audio(`sounds/${buttonColours[i]}.mp3`); // Eg. name of audio file - 'blue.mp3'
}

console.log(sounds);
电流输出:
 [audio, audio, audio, audio]
所需的输出(每个存储一个不同的音频对象,因为它们播放不同的声音):
 [redSound, blueSound, greenSound, yellowSound]

最佳答案

与其将音频对象存储在数组中,不如使用对象。为了使用它们,您可以使用Object.keys(sounds)遍历对象的键

var buttonColours = ["red", "blue", "green", "yellow"]
var sounds = {};

for (var i=0; i < buttonColours.length; i++) {
sounds[buttonColours[i]+"Sound"] = new Audio(`sounds/${buttonColours[i]}.mp3`); // Eg. name of audio file - 'blue.mp3'
}

console.log(sounds);
//{redSound: audio, blueSound: audio, greenSound: audio, yellowSound: audio}

关于javascript - 如何在循环内创建具有唯一变量名称的动态对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64603839/

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