编写一个函数,该函数接受以下输入,并通过增加其id来复制对象,从而返回对象数组(长度为10);
对于输出[0],可见对象必须为true;对于剩余的对象,可见对象必须为false。
input:
{ id: 0,
visible: true,
width: 200 ;
height: 200;
}
output:
[ { id: 0,
visible: true,
width: 200 ;
height: 200;
},
{ id: 1,
visible: false,
width: 200 ;
height: 200;
},{ id: 2,
visible: false,
width: 200 ;
height: 200;
},{ id: 3,
visible: false,
width: 200 ;
height: 200;
},.
.
.
.
{ id: 9,
visible: false,
width: 200 ;
height: 200;
}]
答案 0 :(得分:2)
您可以创建一个10个元素的数组,并用0
(或其他任何东西,填充只能启用迭代)填充,然后在其上map
填充并返回输入的副本,其中包含所需的id每次迭代:
编辑:已更新,其中包含visible
的逻辑(在第一篇文章中省略)
const input = { id: 0, visible: true, width: 200, height: 200 };
const output = Array(10).fill(0).map((x, id) => ({...input, visible: id === 0, id}));
console.log(output)
答案 1 :(得分:0)
这是我的草案,但是,如果您想得到一个好的答案,还需要在要求我们花时间为您做所有事情之前,向我们展示您尝试过的内容以及陷入困境的地方。
const mock = {
id: 0,
visible: true,
width: 200,
height: 200
}
let mockArr = [];
for (i = 0; i <= 10; i++) {
mockArr.push({
...mock,
visible: i === 0,
id: i
})
}
console.log(mockArr)
答案 2 :(得分:0)
我的建议...
let input = { id: 0, visible: true, width: 200, height: 200 }
let output = [];
for (let i=0; i<10; i++) {
output.push( Object.assign({}, input, { id: i, visible:(i===0) }) )
}
console.log(output);