我有一个JSON
数组,其中包含不同语言的单词,我想要随机报警。 问题是,我在每种语言中有不同数量的单词,因此当我使用下面的代码时,我在某些情况下会得到undefined
(因为某些单词比其他单词具有更多的语言,因此长度属性比它应该具有的更长)。
我曾尝试在第2行末尾使用all.french.length
,但得到一个错误。 有人知道我该怎么做吗?
谢啦!
null
all = [{"english":"cat", "french":"chat"}, {"english":"dog"}]
let z = Math.floor(Math.random() * all.length);
alert('random: ' + all[z].french);
null
编辑:我只想让它只警告我在第3行中定义的语言中的单词。 在这种情况下,我想只显示法语单词:只提醒“聊天”一次又一次。 我的单词原始数据当然比那个大,而且有更多的语言,所以我不能用0。
如果您只想要一个存在翻译法语的随机元素,您可以过滤您的数组
const filteredArray = all.filter(element =>
element.french === "" || element.french);
let z = Math.floor(Math.random() * filteredArray.length);
alert('random: ' + filteredArray[z].french);
您可以这样做:
null
const all = [{"english":"cat", "french":"chat"}, {"english":"dog"}]
function myAlert(lang)
{
let arr = all.filter( e=>!!e[lang])
, z = Math.floor(Math.random() * arr.length)
;
alert('random: ' + arr[z][lang] )
}
myAlert('french')
myAlert('english')