如何使用Javascript从数组中生成随机数?
我试图从阵列中生成一个随机SKU编号。使用Math.floor()和Math.random()获取索引。但它只返回一个字母或数字,而不是整个字符串。以下是函数:如何使用Javascript从数组中生成随机数?,javascript,Javascript,我试图从阵列中生成一个随机SKU编号。使用Math.floor()和Math.random()获取索引。但它只返回一个字母或数字,而不是整个字符串。以下是函数: function bookRentData(bookData) { bookData.forEach((book) => { //generate random sku number const sku = book.sku var random = sku[Math.floor(M
function bookRentData(bookData) {
bookData.forEach((book) => {
//generate random sku number
const sku = book.sku
var random = sku[Math.floor(Math.random() * sku.length - 1)];
document.getElementById("message").innerHTML = sku[random];
});
wrap.innerHTML += `<tr>
<td>${book.sku}</td>
<td>${book.price}</td>
</tr>`
}
如有任何建议,我们将不胜感激 也许这会奏效:
函数bookRentData(bookData){
book=bookData[Math.floor(Math.random()*bookData.length-1)]
wrap.innerHTML+=`
${book.sku}
${book.price}
`
}
我假设您需要列表中的单个sku
,因为您需要一个随机的。(如果你想要全部,那么它们就不必是随机的。)
PS注释如果我没有正确理解您的问题您有Math.floor(Math.random()*sku.length-1)
,它有时可能返回-1
要生成介于0到长度之间的数字,可以更改为:
var random = sku[Math.floor(Math.random() * sku.length)];
检查是否满足您的场景
函数bookRentData(){
var bookData=[{sku:'101ZS536',
价格:4.37
},
{
sku:'10134QYT',
价格:42.61
},
{
sku:'10134QXT',
价格:53.31
},
{
sku:'10134QZT',
价格:0
},
{
sku:'10134QST',
价格:3.43
},
{
sku:'10134QCT',
价格:3.46
},
{
sku:'10134QYT',
价格:3.1
},
{
sku:'10134QYT',
价格:3.2
},
{
sku:'10134QBT',
价格:3.6
},
{
sku:'10134QYT',
价格:3.5元
},
{
sku:'10134QJT',
价格:3.1
},
{
sku:'10134QYT',
价格:3.2
},
{
sku:'10134QRT',
价格:3.6
},
{
sku:'10134QKT',
价格:3.5元
}
];
book=bookData[Math.floor(Math.random()*bookData.length)]
var x=document.getElementById(“演示”)
x、 innerHTML=book.sku;
}
试验
试试看
以下是一个简单易读的答案,用于从数组中访问随机值,然后访问该对象的sku:
var-arr=[
{sku:'123ZS536',价格:4.37},
{sku:'45634ABC',价格:42.61},
{sku:'10134DEF',价格:53.31},
{sku:'78934GHI',价格:0},
{sku:'10134QYT',价格:3.46}
];
console.log(rando(arr.value.sku)代码>
什么是bookData
?为什么要使用.forEach()
?什么是book.sku
/sku
?如果您回答了所有这些问题,您应该找到问题的根源。它返回z
,因为sku
值设置为等于[1,0,1,z,S,5,3,6]
。i、 e.book.sku
@AndreasbookData
的值保存整个数据,.forEach()
遍历数据中的每个对象,并且book.sku
返回每个对象的每个图书sku编号。我正在尝试随机检索这些sku编号中的1个。谢谢,但这将返回整个对象。我只是试图从对象数组中检索SKU编号。在这种情况下,10134QYT
。稍后,我将更新价格。您可以从对象获取SKU编号,对吗?检查更新的代码段,返回整个对象。我只是想得到SKU号。谢谢是的book
是一个对象,但您的内部html将有编号。仅当它是book.sku
var random = sku[Math.floor(Math.random() * sku.length)];