Я довольно новичок в JS, поэтому, пожалуйста, потерпите меня, пытаясь объяснить это:
Я начинаю с пустого array = []
Я использую for
l oop в сочетании с конструктором объектов для генерации заданного количества объектов - каждый из которых имеет одинаковый набор ключей - и использованием нескольких функций rng для назначения случайных значений каждому ключу в каждом сгенерированном объекте. Эти объекты получают push
ed по одному в конце каждого l oop в пустой массив ранее.
Каждый сгенерированный объект имеет всего 6 ключей.
Я хочу знать, возможно ли предотвратить генерацию нового объекта, если он будет соответствовать указанному подмножеству ключей c. Т.е., если у меня есть
object = {key1: 17,
key2: 'potato',
key3: false,
key4: true,
key5: 27,
key6: 'purple flamingos'
}
, я хочу убедиться, что функция не генерирует больше элементов с точно такой комбинацией значений:
key1: 17,
key2: 'potato',
key4: true,
Хотя любые два из них могут соответствует, я хочу предотвратить повторение этих трех пар ключ / значение в результирующем массиве.
Вот еще мой код, если это поможет
"use strict";
const quizSubmissions = []; // Empty array for randomly generated student list
function Submission(quizName, quizModule, quizScore, studentId, studentName, submissionDate) { // Constructor for individual submissions
this.quizName = quizName,
this.quizModule = quizModule,
this.quizScore = quizScore,
this.studentId = studentId,
this.studentName = studentName,
this.submissionDate = submissionDate
}
const randQuiz = (a, b) => { // Output quiz name and module based on input
}
const randQuizScore = () => { // Generate random quiz grade from 50 to 100
}
const randStudent = (c) => { // Output student name and id based on input
}
const randSubmissionDate = () => { // Generate random dare of submission
}
const generateStudentList = (quantity) => { // Function to generate submission objects with rng
console.log('Values automatically stored to array named "quizSubmissions"')
for (let i = 0; i < quantity; i++) { // Iterate through the loop 'quantity' times
let a = Math.floor(Math.random() * 6);
let b = Math.floor(Math.random() * 4);
let c = Math.floor(Math.random() * 4);
quizSubmissions.push(
new Submission(
randQuiz(a, b)[0],
randQuiz(a, b)[1],
randQuizScore(),
randStudent(c)[1],
randStudent(c)[0],
randSubmissionDate())) // Push new object to global array, based on rng results
}
return quizSubmissions;
}
const clearStudentList = () => {
quizSubmissions.length = 0;
}