Javascript 从范围生成对象在第一次迭代时获取null
我的循环有什么问题?第一次迭代有空Javascript 从范围生成对象在第一次迭代时获取null,javascript,Javascript,我的循环有什么问题?第一次迭代有空 generateRewardOptions = () => { let options = [] const max = 20 for(let i = 1; i <= max; i++){ options[i] = { key: i, value: i, text: i
generateRewardOptions = () => {
let options = []
const max = 20
for(let i = 1; i <= max; i++){
options[i] = {
key: i,
value: i,
text: i
}
}
return options
}
console.log(JSON.stringify(generateRewardOptions()));
generateRewardOptions=()=>{
让选项=[]
常数最大值=20
对于(设i=1;i问题在于,当循环应该从0开始时,从1开始循环
将for的值从0更改为最大值并将其排除应可解决以下问题:
for(let i = 0; i < max; i++){
for(设i=0;i
JavaScript数组是基于0的问题是当循环应该从0开始时,从1开始循环
将for的值从0更改为最大值并将其排除应可解决以下问题:
for(let i = 0; i < max; i++){
for(设i=0;i
JavaScript数组是基于0的除了smnbbrv建议的选项之外,另一个选项是在循环中使用push
:
for(let i = 1; i <= max; i++) {
options.push({
key: i,
value: i,
text: i
});
}
for(让i=1;i除了smnbbrv建议的选项外,另一个选项是在循环中使用push
:
for(let i = 1; i <= max; i++) {
options.push({
key: i,
value: i,
text: i
});
}
for(让i=1;i好捕获。只需确保在循环中使用i+1
,但仅在必要时,索引仍应保持i
好捕获。只需确保在循环中使用i+1
,但仅在必要时,索引仍应保持i
可选:数组。from({length:20},(el,i)=>({key:i,value:i,text:i});
备选方案:Array.from({length:20},(el,i)=>({key:i,value:i,text:i}));
这在大数组上更容易,但可能会有性能问题,(比现代chrome上的直接赋值慢60%)链接不错。Thanks@smnbbrv此测试存在缺陷,不能反映Chrome中的真实阵列性能,请参阅。根据分析,这两种方法之间没有显著的性能差异。这更容易,但在大型阵列上可能会出现性能问题(比现代Chrome上的直接分配慢60%)链接不错。Thanks@smnbbrv这个测试是有缺陷的,不能反映Chrome中的真实阵列性能,请参阅。根据分析,这两种方法之间没有明显的性能差异。