Hac*_*ack 0 javascript typescript ecmascript-6
album.songs = [1234545,43524];
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
Run Code Online (Sandbox Code Playgroud)
输出:未定义
我的问题是我想用'特定对象'替换'songs'数组中的项目.它适用于字符串或数字,但不适用于对象.
一些说明:
使用map,返回要包含新数组的对象.分配给参数e只会更改参数的值,该值不会保留在任何位置.
没有必要Object.assign,只需直接创建对象,所以:
const replaced = album.songs.map(e => { return { _id : e }; } );
Run Code Online (Sandbox Code Playgroud)
或简洁的形式:
const replaced = album.songs.map(e => ({ _id : e }) );
Run Code Online (Sandbox Code Playgroud)
请注意,由于我们要返回使用对象初始值设定项创建的对象,并且初始化程序中的对象{将启动函数体,因此我们将包含要返回的值().
如果我们将参数的名称更改为_id:我们甚至可以利用速记属性表示法:
const replaced = album.songs.map(_id => ({ _id }) );
Run Code Online (Sandbox Code Playgroud)实例:
const album = {songs: [1234545, 43524]};
const replaced = album.songs.map(_id => ({ _id }) );
console.log(replaced);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |