Javascript TypeError:无法读取属性';id';映射到两个数组时的未定义值
每次使用useffect()钩子加载主页时,我都会尝试加载4个随机城市,并减去已找到的项目以避免重复,因此我编写了以下函数:Javascript TypeError:无法读取属性';id';映射到两个数组时的未定义值,javascript,reactjs,Javascript,Reactjs,每次使用useffect()钩子加载主页时,我都会尝试加载4个随机城市,并减去已找到的项目以避免重复,因此我编写了以下函数: const cities = [ { id: "0", name: "New York" }, { id: "1", name: "California" }, { id: "2", name: "Tokyo" }, { id: &quo
const cities = [
{ id: "0", name: "New York" },
{ id: "1", name: "California" },
{ id: "2", name: "Tokyo" },
{ id: "3", name: "Paris" },
{ id: "4", name: "Oran" },
{ id: "5", name: "roma" },
{ id: "6", name: "dubai" },
{ id: "7", name: "madrid" },
{ id: "8", name: "beijing" },
{ id: "9", name: "montreal" }
];
const randomCitiesLoader = () => {
let randomCities = [];
randomCities.push(cities[Math.floor(Math.random() * cities.length - 1)]);
for (let i = 0; i < 3; i++) {
let queryCities = cities.filter(city => {
return !randomCities.find(item => {
return item.id === city.id;
});
});
randomCities.push(
queryCities[Math.floor(Math.random() * queryCities.length - 1)]
);
}
return randomCities;
};
const cities=[
{id:“0”,名称:“纽约”},
{id:“1”,名字:“California”},
{id:“2”,名字:“东京”},
{id:“3”,名字:“巴黎”},
{id:“4”,名字:“Oran”},
{id:“5”,姓名:“roma”},
{id:“6”,名字:“迪拜”},
{id:“7”,名字:“马德里”},
{id:“8”,名字:“北京”},
{id:“9”,姓名:“蒙特利尔”}
];
const randomCitiesLoader=()=>{
让随机城市=[];
randomCities.push(cities[Math.floor(Math.random()*cities.length-1)];
for(设i=0;i<3;i++){
让queryCities=cities.filter(city=>{
return!randomCities.find(项目=>{
return item.id==city.id;
});
});
推(
queryCities[Math.floor(Math.random()*queryCities.length-1)]
);
}
回归城市;
};
但我得到了一个错误:
有人能帮忙吗Math.floor(Math.random()*cities.length-1)
可以是-1,这样你就可以把未定义的推到结果数组中,因为城市[-1]
是未定义的
您最好的选择是使用array[Math.floor(Math.random()*array.length)]
从数组中拾取随机元素。您是否尝试将项
记录在查找
中?也许这会给你一个线索,谢谢。以重复的方式结束此问题。