Я недавно задал вопрос о сортировке массива по количествам.Я получил ответ, но теперь мне нужно добавить к этому.Я работаю над страницей, где пользователь будет вводить количества и длины для продукта, который будет произведен.Исходный код, который у меня был, выглядит так:
var cutList = [ { qty: 36, feet: 28, inch: 3 },
{ qty: 6, feet: 27, inch: 8 },
{ qty: 12, feet: 27, inch: 3 },
{ qty: 6, feet: 25, inch: 8 },
{ qty: 16, feet: 25, inch: 3 },
{ qty: 22, feet: 22, inch: 8 },
{ qty: 12, feet: 12, inch: 3 }],
limit = 40,
used = 0,
result = cutList.reduce((r, { qty, feet, inch }, i) => {
var rest, min;
while (qty) {
if (used === 0) r.push([]);
min = Math.min(limit - used, qty)
r[r.length - 1].push({ qty: min, feet, inch, limit });
qty -= min;
used += min;
if (used === limit) used = 0;
}
return r;
}, []);
console.log(result);
, который выводит на консоль следующее:
Array [
Array [
Object { qty: 36, feet: 28, inch: 3, limit: 40 },
Object { qty: 4, feet: 27, inch: 8, limit: 40 }],
Array [
Object { qty: 2, feet: 27, inch: 8, limit: 40 },
Object { qty: 12, feet: 27, inch: 3, limit: 40 },
Object { qty: 6, feet: 25, inch: 8, limit: 40 },
Object { qty: 16, feet: 25, inch: 3, limit: 40 },
Object { qty: 4, feet: 22, inch: 8, limit: 40 }],
Array [
Object { qty: 18, feet: 22, inch: 8, limit: 40 },
Object { qty: 12, feet: 12, inch: 3, limit: 40 },
Object { qty: 10, feet: 10, inch: 6, limit: 40 }],
Array [
Object { qty: 28, feet: 10, inch: 6, limit: 40 }]
]
У меня есть некоторый HTML-код для формы для ввода данных пользователем следующим образом:
<html>
<head>
<style>
article, aside, figure, footer, header, hgroup,
menu, nav, section { display: block; }
</style>
</head>
<body>
<form>
<h1>Please enter data</h1>
<input id="qty" type="number" placeholder="Quantity" />
<input id="feet" type="number" placeholder="Feet" />
<input id="inch" type="number" placeholder="Inches" />
<input type="button" value="Add" onclick="insert()" />
<input type="button" value="Calculate" onclick="calculate()" />
</form>
<div id="display"></div>
</body>
</html>
И еще немного javascript, пытающегося получить входные данные в массив cutList:
var qty = [];
var feet = [];
var inch = [];
var cutlist = [qty, feet, inch];
var qtyInput = document.getElementById("qty");
var feetInput = document.getElementById("feet");
var inchInput = document.getElementById("inch");
var messageBox = document.getElementById("display");
function insert ( ) {
qty.push( qtyInput.value );
feet.push( feetInput.value );
inch.push( inchInput.value );
}
Я хотел бы принять пользовательский ввод, это может быть 5 элементов (сКол-во, футы и дюймы) или это может быть 100, а затем вывести результаты этого первого бита кода, который сортирует их по группам по 40, чтобы пользователь мог распечатать отсортированный список.
Прошло много-много времени с тех пор, как я занимался программированием, и я новичок в JavaScript, поэтому будьте спокойны со мной.Любая помощь будет оценена.