Если вы хотите преобразовать свой вход array
в array
из objects
, где каждая object
будет удерживать каждую последовательную комбинацию [id
, name
, age
и address
), вы можете использовать for loop
с шагом, равным 4
, чтобы читать каждый 4 элемента в одном object
.
Вот как должен быть ваш код:
for (var i = 0; i < array.length; i+=4) {
result.push({
id: array[i],
name: array[i + 1],
age: array[i + 2],
address: array[i + 3],
});
}
Демо:
Это рабочая демонстрация:
var array = [
'id',
'name',
'age',
'address',
'id',
'name',
'age',
'address'
];
var result = [];
for (var i = 0; i < array.length; i+=4) {
result.push({
id: array[i],
name: array[i + 1],
age: array[i + 2],
address: array[i + 3],
});
}
console.log(result);
Если я правильно понимаю, вы хотите, чтобы тип FormResult
извлекал параметры базового типа из ButtonSelectControlData
и ControlData
. Если это так, то одним из возможных решений является создание условного типа :
type FormResult<T> = {
[K in keyof T]: T[K] extends ControlData<infer U>
? U
: never
}