gpt4 book ai didi

arrays - angular2 创建关联数组

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:29 25 4
gpt4 key购买 nike

我想在 angular2 中创建一个关联数组,但还没有找到方法

这是我试过的

  onSubmit(){

let inputfield:any[] = [];

for(var i=0; i<this.inspectionform.value["inputfileds"].length; i++){

if(this.inspectionform.value["inputfileds"][i]["input"] != ""){
//here i need help
inputfield.push( i : this.inspectionform.value["inputfileds"][i]["input"]) //this returns a syntax error
}

}

}所以我真正期待的是将一个键和值传递给数组

有点像

1:sdbhd//pass this to the array

我试过在for循环中

//inside the for loop

let arrayval = [];
arrayval.push(this.inspectionform.value["inputfileds"][i]["input"])
arrayval.push(i)

inputfield.push(arrayval);

这每次都会创建一个新对象

0:njnf
1:1(value of i)

最佳答案

您可以使用 map ,但我会选择普通对象;

演示

const mything = {}
mything.foo = 1
mything.foo === mything['foo'] // true
mything['bar'] = 1337;
mything.bar === 1337 // true
mything.foo-bar = 1 // ERROR: can't have dashes
mything['foo-bar'] = 1 // Works

在 ES6 或任何相对现代的浏览器中,您可以使用 Object.keys(mything) 获取所有 key 。对于较旧的环境,您将不得不使用 for ... in 遍历键,如以下 polyfill 所示:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/keys

您必须注意的另一件事是在您的属性链中定义前一项。例如,如果你有

var foobar = {
foo: { bar: 1 }
}

然后您可以执行foobar.foo.bar.toString() 以获得“1”,但是如果您尝试执行foobar.foo.bang.toString() 你会得到一个错误,因为 bang 没有在 foo 对象上定义。

您可以通过像 foobar.foo.bang && foobar.foo.bang.toString() 这样的保护检查来解决这个问题,它只会在 bang 存在时运行 toString 方法。

更简单的方法是使用 lodash,它为您提供 _.get,而 _.set 负责守卫和缺失属性的创建。

关于arrays - angular2 创建关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42075256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com