访问 Marvel API 个名称
Access Marvel API Names
我正在尝试创建一个允许我随机点击奇迹名称的功能。但是,我试图实现以下代码,但它只显示一个名称,不允许我单击不同的名称。请帮忙
var arr = data.data.results[1].name;
console.log(arr)
function nextItem() {
for (i = 0; i <arr.length; i++){
i = i + 1;
i = i % arr;
} return arr}
function prevItem () {
if (i===0) {
i = name;
}
i = i - 1;
return name[i]
}
document.getElementById('character-name').textContent = arr;
document.getElementById("next-btn").addEventListener('click', function (e){
document.getElementById("character-name").textContent= nextItem();
}
) });
我添加了 MARVEL API 对象的属性和相关值的图片
Marvel API Console.log
最重要的是,您必须从数组中提取所有名称。您目前只选择了元素1的名称。
var arr = data.data.results[1].name;
这应该更改为
var arr = data.data.results.map(_ => _.name);
// creates an array with only the names of the marvel heros
我会先使用此处的算法随机打乱名称数组:
function shuffle(array) {
var currentIndex = array.length, temporaryValue, randomIndex;
// While there remain elements to shuffle...
while (0 !== currentIndex) {
// Pick a remaining element...
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
// And swap it with the current element.
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
对于你的例子,我会这样做:
var arr = data.data.results.map(_ => _.name);
shuffle(arr)
let index = 0;
function nextItem() {
index++;
index % arr.length;
return arr[index];
}
function prevItem() {
index--;
if(index < 0) index = arr.length - 1;
return arr[index];
}
document.getElementById('character-name').textContent = arr[index];
document.getElementById("next-btn").addEventListener('click', function (e){
document.getElementById("character-name").textContent= nextItem();
)});
我正在尝试创建一个允许我随机点击奇迹名称的功能。但是,我试图实现以下代码,但它只显示一个名称,不允许我单击不同的名称。请帮忙
var arr = data.data.results[1].name;
console.log(arr)
function nextItem() {
for (i = 0; i <arr.length; i++){
i = i + 1;
i = i % arr;
} return arr}
function prevItem () {
if (i===0) {
i = name;
}
i = i - 1;
return name[i]
}
document.getElementById('character-name').textContent = arr;
document.getElementById("next-btn").addEventListener('click', function (e){
document.getElementById("character-name").textContent= nextItem();
}
) });
我添加了 MARVEL API 对象的属性和相关值的图片 Marvel API Console.log
最重要的是,您必须从数组中提取所有名称。您目前只选择了元素1的名称。
var arr = data.data.results[1].name;
这应该更改为
var arr = data.data.results.map(_ => _.name);
// creates an array with only the names of the marvel heros
我会先使用此处的算法随机打乱名称数组:
function shuffle(array) {
var currentIndex = array.length, temporaryValue, randomIndex;
// While there remain elements to shuffle...
while (0 !== currentIndex) {
// Pick a remaining element...
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
// And swap it with the current element.
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
对于你的例子,我会这样做:
var arr = data.data.results.map(_ => _.name);
shuffle(arr)
let index = 0;
function nextItem() {
index++;
index % arr.length;
return arr[index];
}
function prevItem() {
index--;
if(index < 0) index = arr.length - 1;
return arr[index];
}
document.getElementById('character-name').textContent = arr[index];
document.getElementById("next-btn").addEventListener('click', function (e){
document.getElementById("character-name").textContent= nextItem();
)});