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