Javascript 如何在typescript中生成对象的动态数组
我希望将字符串Javascript 如何在typescript中生成对象的动态数组,javascript,arrays,typescript,Javascript,Arrays,Typescript,我希望将字符串名称的数组传递给函数,并能够基于该数组生成对象数组 假设我正在传递{'id','title'},作为输出,我得到 [ { id: '1', title: 'o1' }, { id: '2', title: 'o2' }, ] 我有点不知所措,因为我不知道如何将stirngs数组转换成一个对象 export function getItems(names) { const a: any[] = [
名称的数组
传递给函数,并能够基于该数组生成对象数组
假设我正在传递{'id','title'}
,作为输出,我得到
[
{
id: '1',
title: 'o1'
},
{
id: '2',
title: 'o2'
},
]
我有点不知所措,因为我不知道如何将stirngs数组转换成一个对象
export function getItems(names) {
const a: any[] = [];
for (let i = 0; i < 5; i++) {
// need to produce 5 objects here like:
// {
// id: '1',
// title: 'o1'
// }
a.push(object);
}
return a;
}
导出函数getItems(名称){
常数a:任意[]=[];
for(设i=0;i<5;i++){
//需要在此处生成5个对象,如:
// {
//id:'1',
//标题:“o1”
// }
a、 推(物);
}
返回a;
}
想法?您没有提供太多信息,但这应该对您有用
function getItems(names) {
const a: any[] = [];
for (let i = 0; i < 5; i++) {
a.push(names.reduce((acc, val) => {
acc[val] = val + i
return acc
}, {}));
}
return a;
}
函数getItems(名称){
常数a:任意[]=[];
for(设i=0;i<5;i++){
a、 推送(名称.减少((acc,val)=>{
acc[val]=val+i
返回acc
}, {}));
}
返回a;
}
这应该可以
function-manufactureArray(props,num){
var-arr=[];
var-obj;
//循环获取要推送到阵列的对象数
对于(变量i=0;i试试这个
type Obj = {[key: number]: number}
function getItems(names: number[]) {
const arr: Obj[] = []; // your array is an array of Obj Type
for (let i = 0; i < 5; i++) {
// obj also is of type Obj
const obj = names.reduce((acc, val) => {
acc[val] = val + i
return acc;
}, {} as Obj)
// here you can push obj in your array
arr.push(obj);
}
return arr;
}
type Obj={[key:number]:number}
函数getItems(名称:编号[]){
const arr:Obj[]=[];//您的数组是Obj类型的数组
for(设i=0;i<5;i++){
//obj也属于obj型
const obj=names.reduce((acc,val)=>{
acc[val]=val+i
返回acc;
},{}作为Obj)
//在这里,您可以在阵列中推进obj
方位推力(obj);
}
返回arr;
}
您如何提供这些键的值?我的意思是,name='o1',name='02'等等。它们是随机的吗。您需要告诉我们如何将值分配给属性?数组也应该是['id','title']而不是{'id','title'}。这应该是循环a.push中的语句({id:${i+1}
,title:o${i+1}
})@ivp值将在循环中从1
分配到5
谢谢@Abhijit