如何简化else if语句,其中文本字符串求值与附加到的数组具有相同的名称?(JavaScript)
下面是一系列else if语句,其中一旦求值,就会将数据附加到与求值语句中硬编码字符串同名的数组中。我知道必须有一个相当简单的方法来提高效率,但我想不出一个解决方案,它不会使事情变得过于复杂 代码:如何简化else if语句,其中文本字符串求值与附加到的数组具有相同的名称?(JavaScript),javascript,arrays,if-statement,foreach,Javascript,Arrays,If Statement,Foreach,下面是一系列else if语句,其中一旦求值,就会将数据附加到与求值语句中硬编码字符串同名的数组中。我知道必须有一个相当简单的方法来提高效率,但我想不出一个解决方案,它不会使事情变得过于复杂 代码: 由于类别键对应于数组变量名,因此可以使用基于类别的动态键 此外,您可以使用concat将yAxis数据中的所有值复制到数组中,而无需遍历每个项 // Stores the dynamic key const key = categoryObject.category; // Appends an
由于类别键对应于数组变量名,因此可以使用基于类别的动态键 此外,您可以使用concat将yAxis数据中的所有值复制到数组中,而无需遍历每个项
// Stores the dynamic key
const key = categoryObject.category;
// Appends an array of variables (yAxis data) to one of your arrays using a dynamic key
this[key].concat(categoryObject.data.yAxis);
为什么不使用动态方法,并省略与
这件事无关的局部变量
categoryObject.data.yAxis.forEach(element => {
// create array, if not exist
this[categoryObject.category] = this[categoryObject.category] || [];
// push value
this[categoryObject.category].push(element);
});
您可以将数组存储在对象中,并使用类别作为键
var storage = {
name: [],
name2: [],
name3: [],
name4: [],
name5: [],
name6: [],
name7: [],
name8: [],
name9: [],
name10: [],
name11: [],
name12: [],
name13: []
}
categoryObject.data.yAxis.forEach(element => {
// console.log('y: ' + element);
storage[categoryObject.category].push(element);
});
this[categoryObject.category].push(element)
?我的帖子之所以有“this”,是因为它是在导出类AppComponent实现OnInit{ngOnInit(){}中调用的。推送到数组的值是否需要在函数之前声明(比如var name=[];),这样就有了某种类型的存储,或者这是否会创建并存储足够长的值和数组,以满足同时需要的任何用途?push
是一种数组方法。在按下之前,必须先初始化数组。数组的长度是动态的。添加了解释
var storage = {
name: [],
name2: [],
name3: [],
name4: [],
name5: [],
name6: [],
name7: [],
name8: [],
name9: [],
name10: [],
name11: [],
name12: [],
name13: []
}
categoryObject.data.yAxis.forEach(element => {
// console.log('y: ' + element);
storage[categoryObject.category].push(element);
});