为了账号安全,请及时绑定邮箱和手机立即绑定

如何创建一个函数来创建具有N个属性的N(个)对象?

如何创建一个函数来创建具有N个属性的N(个)对象?

Go
临摹微笑 2022-09-19 10:08:53
我试图在JS中(也是在Go中)创建一个函数,以生成具有N个属性的N个对象。我想要一个返回具有N个属性的N个对象的函数。所以我得到了这个:function objects(name, age, idioms,school) {     this.name = name;    this.age = age;    this.idioms= idioms;    this.school = school;}我甚至不知道如何在Go中做到这一点。
查看完整描述

2 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

这只是一个简单的例子, 在戈兰.您也可以使用与固定道具一起使用的类似逻辑。该函数采用一个整数值 N 和一个字符串数组作为 props。mapsstructs


package main


import (

    "fmt"

)


func createDynamicMap(n int, pr []string) ([]map[string]interface{}) {

    var listOfMap []map[string]interface{}

    for i := 0; i < n; i++ {

        dm := make(map[string]interface{})

        for _, v := range pr {

            if _, ok := dm[v]; !ok {

                dm[v] = nil // all props initialised as nil

            }

        }

        listOfMap = append(listOfMap, dm)

    }

    return listOfMap

}


func main() {

    dynamicMap := createDynamicMap(10,[]string{"name","age","gender"})

    fmt.Println(len(dynamicMap))

}


查看完整回答
反对 回复 2022-09-19
?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

我无法回答Golang部分,但对于JavaScript,你最好从中创建新的对象实例。创建类,然后传入对象,您可以在新类实例中循环和实例化这些属性。

class Creator { 


  // args can be an object with n amount of

  // properties

  constructor(args) {


    // Just loop over the entries and assign each value

    // to the instance

    Object.entries(args).forEach(([key, value]) => {

      this[key] = value;

    });

  };

}


const obj = { name: 'Bob', age: 2, idioms: 'etc', school: 'Grange Hill' };

const obj2 = { name: 'Steve', job: 'Farmer' };


console.log(new Creator(obj));

console.log(new Creator(obj2));


查看完整回答
反对 回复 2022-09-19
  • 2 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信