Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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 如何根据url中的起始字母从数组中随机选择值_Javascript_Html_Arrays - Fatal编程技术网

Javascript 如何根据url中的起始字母从数组中随机选择值

Javascript 如何根据url中的起始字母从数组中随机选择值,javascript,html,arrays,Javascript,Html,Arrays,我有一个名为items的数组,它有10个url标签值 我有一个从数组中随机选择5个值的函数 我希望选择的方式是URL以第一个字母w或d开头 也就是说,我打印到控制台的每个项目都应该有url jpej名称以w或d开头 我怎样才能做到这一点 var array2=[]; 可变项目=[ {标签:“乌鸦”, url:'wcrow.jpg'}, {标签:'驴子', url:'ddonkey.jpg'}, {标签:'狮子', url:'wlion.jpg'}, {标签:'dcat', url:'dcat.

我有一个名为items的数组,它有10个url标签值

我有一个从数组中随机选择5个值的函数

我希望选择的方式是
URL以第一个字母w或d开头

也就是说,我打印到控制台的每个项目都应该有
url jpej名称
以w或d开头

我怎样才能做到这一点

var array2=[];
可变项目=[
{标签:“乌鸦”,
url:'wcrow.jpg'},
{标签:'驴子',
url:'ddonkey.jpg'},
{标签:'狮子',
url:'wlion.jpg'},
{标签:'dcat',
url:'dcat.jpg'},
{标签:“猎豹”,
url:'wcheetah.jpg'},
{标签:“奶牛”,
url:'dcow.jpg'},
{标签:“狗”,
url:'ddog.jpg'},
{标签:'马',
url:'dhorse.jpg'},
{标签:'兔子',
url:'drabbit.jpg'},
{标签:'大象',
url:'welephant.jpg'},
{标签:'玫瑰',},
{标签:“lotus”,
url:'flotus.jpg'},
{标签:“茉莉花”,
url:'fjasmine.jpg'},
{标签:'蛇',
url:'rsnake.jpg'},
{标签:“鳄鱼”,
url:'rcrocodile.jpg'}];
array2=items.slice();
函数名称选择(){
对于(var指数=0;指数<5;指数++){
randomIndex=Math.floor(Math.random()*array2.length)
项目=阵列2[随机索引];
阵列2.拼接(随机索引,1);
控制台日志(项目);
}
}

名称选择()
在选择随机索引之前,首先
按数组的
url
过滤数组。一个选择是

const itemsWithWOrD = items.filter(({ url }) => /^[wd]/i.test(url));
然后,在循环中,确保使用
const
let
var
声明变量,以避免隐式创建全局变量:

for (let index = 0; index < 5; index++) {
  const randomIndex = Math.floor(Math.random() * array2.length);
  const [item] = itemsWithWOrD.splice(randomIndex, 1);
  console.log(item);
}
var array2=[];
可变项目=[{
标签:“乌鸦”,
url:'wcrow.jpg'
},
{
标签:“驴子”,
url:'ddonkey.jpg'
},
{
标签:“狮子”,
url:'wlion.jpg'
},
{
标签:“dcat”,
url:'dcat.jpg'
},
{
标签:“猎豹”,
url:'wcheetah.jpg'
},
{
标签:“奶牛”,
url:'dcow.jpg'
},
{
标签:“狗”,
url:'ddog.jpg'
},
{
标签:“马”,
url:'dhorse.jpg'
},
{
标签:“兔子”,
url:'drabbit.jpg'
},
{
标签:“大象”,
url:'welephant.jpg'
},
{
标签:“玫瑰”,
},
{
标签:“莲花”,
url:'flotus.jpg'
},
{
标签:“茉莉花”,
url:'fjasmine.jpg'
},
{
标签:“蛇”,
url:'rsnake.jpg'
},
{
标签:“鳄鱼”,
url:'rcrocodile.jpg'
}
];
函数名称选择(){
const itemsWithWOrD=items.filter(({url})=>/^[wd]/i.test(url));
对于(让索引=0;索引<5;索引++){
const randomIndex=Math.floor(Math.random()*array2.length);
常量[项目]=项目纵向拼接(随机索引,1);
控制台日志(项目);
}
}

名称选择()
您还可以将
startters
放在一个单独的数组中,并将其传递给随机选择器函数。您还可以传递所需的项目数,然后通过
Array.filter
Array.includes
进行筛选,以获得结果:

var items=[{label:'crow',url:'wcrow.jpg'},{label:'duckey.jpg'},{label:'lion',url:'wlion.jpg'},{label:'dcat.jpg'},{label:'cheetah',url:'wcheetah jpg'},{label:'cow',url:'dcow.jpg'},{label:'dog',url:'ddog jpg'},{label:'horse',url:'dhorse.jpg'},{label:'rabbit',url:'drabbit.jpg'},{label:'elephant.jpg'},{label:'rose',},{label:'lotus',url:'flotus.jpg'},{label:'fjasmine.jpg'},{label:'snake',url:'rsnake.jpg'},{label:'crocodile.jpg'};
常量getRandomUrls=(arr,starttetters,num)=>{
让url=items.filter(({url})=>url&&startters.includes(url[0]);
return[…Array(num)].map(x=>url[Math.floor(Math.random()*url.length)])
}

log(getRandomUrls(items,['w','d'],5))
@certainperformance感谢您指出…标记已更正
const itemsWithWOrD = items.filter(({ url }) => url && (url.startsWith('w') || url.startsWith('d')));