| 
		
			Сообщение от MC-XOBAHCK
			
		
	 | 
	| 
		Поэтому прошу показать на упрощённом примере решение для таких задач:
	 | 
	
Общее решение для таких связанных полей...
addEventListener("input", ({ target }) => {
	const relatedInputs = (target.form || document)
		.querySelectorAll(`input[type="number"][name="${event.target.name}"]`);
	const value = Number(target.value);
	const unit = Number(target.getAttribute("value"));
	
	for(const input of relatedInputs) {
		if(input === event.target) continue;
		input.value = value * Number(input.getAttribute("value")) / unit;
	}
});
MC-XOBAHCK, это решение предполагает, что вы укажете в самих полях в атрибуте value пример конвертации.
Если вы будете указывать отдельно в массиве, то вероятно запутаетесь и сделаете ошибку.
Такая конвертация однотипна, один скрипт может обрабатывать всё поля.
Может работать без формы, как указано у вас, но если нужны поля с одинаковыми именами, то можно обернуть в форму, чтобы изолировать друг от друга поля с одинаковыми именами.
Вот пример целиком...
<style>
form {
	display: grid;
	grid-template-columns: 1fr 5fr;
	gap: 1em;
	text-align: right;
	margin: 1em;
	padding: 1em;
	max-width: 30em;
}
form > label {
	display: contents;
}
</style>
<script>
addEventListener("input", ({ target }) => {
	const relatedInputs = (target.form || document)
		.querySelectorAll(`input[type="number"][name="${event.target.name}"]`);
	const value = Number(target.value);
	const unit = Number(target.getAttribute("value"));
	
	for(const input of relatedInputs) {
		if(input === event.target) continue;
		input.value = value * Number(input.getAttribute("value")) / unit;
	}
});
</script>
<form>
	<label>мм: <input type="number" name="unit" value="1000"></label>
	<label>см: <input type="number" name="unit" value="100"></label>
	<label>м:  <input type="number" name="unit" value="1"></label>
</form>
<form>
	<label>Удавов:   <input type="number" name="animal" value="1"></label>
	<label>Слонёнка: <input type="number" name="animal" value="2"></label>
	<label>Мартышек: <input type="number" name="animal" value="5"></label>
	<label>Попугаев: <input type="number" name="animal" value="38"></label>
</form>
Можно с формой, а можно без формы. Форма позволяет изолировать друг от друга одноимённые поля.
Удобно ведь таким образом? Указываешь в поле курсы валют, длины, объёмы, площади и всё остальное, что можно конвертировать, и оно работает!
Вы понимаете, как можно добавить ещё один конвертер?
UPD рони, вы всё-таки запутались в массивах и полях (потому что в двух разных местах) и у вас получается, что 1 м равен 10 см!
Также при таком подходе поля сразу заполнены правильным примером, и у пользователя не складывается впечатление, что ему придётся заполнять все эти поля.
	
	| 
		
			Сообщение от рони
			
		
	 | 
	| 
		const rang = [1, 2, 5, 38];
	 | 
	
 Но всё-таки, почему оно звенело?