Javascript 从对象数组返回包含特定参数的随机对象
我目前正在以以下方式将数据存储为数组中的对象:Javascript 从对象数组返回包含特定参数的随机对象,javascript,Javascript,我目前正在以以下方式将数据存储为数组中的对象: let data = []; module.exports.init = function() { database.pool.query("SELECT * FROM data", (error, rows) => { if (error) { logUtil.log.error(`Loading failed: ${ error.message }`); }
let data = [];
module.exports.init = function() {
database.pool.query("SELECT * FROM data", (error, rows) => {
if (error) {
logUtil.log.error(`Loading failed: ${ error.message }`);
}
else {
rows.forEach((row) => data.push({dimension: row.dimension, x: row.x, y: row.y, z: row.z}));
logUtil.log.info(data);
}
});
};
现在数据将保存以下内容:[{维度:2,x:-973.097,y:-133.411,z:38.2531},{维度:3,x:-116.746,y:-48.414,z:17.226},{维度:2,x:-946.746,y:-128.411,z:37.786},{维度:2,x:-814.093,y:-106.724,z:37.589}]
现在我尝试从这个数组中接收一个随机对象,该数组存储一个特定的维度参数
例如,我想返回一个存储维度的随机对象:2
我尝试使用以下方法过滤阵列:
let result = jsObjects.filter(data => {
return data.dimension === 2
})
然后从结果中返回一个随机对象
问题:如何以最佳方式接收此随机对象?您可以分两步完成
维度===2
let resultar=jsObjects.filter(数据=>{
返回数据。维度===2
})
var randomElement=resultar[Math.floor(Math.random()*resultar.length)]代码>
var arr=[{维度:2,x:-973.097,y:-133.411,z:38.2531},{维度:3,x:-116.746,y:-48.414,z:17.226},{维度:2,x:-946.746,y:-128.411,z:37.786},{维度:2,x:-814.093,y:-106.724,z:37.589}]
//用特定的标准过滤掉
让resultar=arr.filter(数据=>{
返回数据。维度===2
})
//获取随机元素
var randomElement=resultar[Math.floor(Math.random()*resultar.length)];
console.log(randomElement)
您可以使用Math.random()
并在数组的0
到长度范围内
let result = jsObjects.filter(data => {
return data.dimension === 2
})
let randomObj = result[Math.floor(Math.random() * result.length)]
您已经对数组进行了筛选,现在的问题归结为“如何从数组中选择随机项”,其中有大量重复项:)