Javascript 如何用对象替换数组中的项?
album.songs=[123454543524]Javascript 如何用对象替换数组中的项?,javascript,typescript,ecmascript-6,Javascript,Typescript,Ecmascript 6,album.songs=[123454543524] const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } ); 输出:未定义 const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } ); 我的问题是,我想用一个特定的对象替换“songs”数组中的项目。它适用于字符串或数字
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
输出:未定义
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
我的问题是,我想用一个特定的对象替换“songs”数组中的项目。它适用于字符串或数字,但不适用于对象。您不需要为函数参数赋值,因为它只存在于该函数中,并且不像是取消引用指针
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
只需返回对象。如果不使用大括号表示主体,则箭头函数将自动返回其表达式
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
var-songs=[123454543524];
const replaced=songs.map(e=>({u id:e}));
控制台日志(已替换)代码>您没有指定给函数参数,因为它只存在于该函数中,并且不像是取消引用指针
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
只需返回对象。如果不使用大括号表示主体,则箭头函数将自动返回其表达式
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
var-songs=[123454543524];
const replaced=songs.map(e=>({u id:e}));
控制台日志(已替换)代码>一些注意事项:
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
使用map
,返回希望新数组包含的对象。分配给参数e
只会更改参数的值,而该值不会保留在任何位置
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
不需要对象。在那里分配,直接创建对象即可,因此:
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
const replaced = album.songs.map(e => { return { _id : e }; } );
或简洁的形式:
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
const replaced = album.songs.map(e => ({ _id : e }) );
请注意,由于我们希望返回使用对象初始值设定项创建的对象,并且初始值设定项中的{
将启动函数体,因此我们将要返回的值包装在()
中
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
如果我们将参数的名称更改为\u id
,我们甚至可以利用速记属性表示法:
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
const replaced = album.songs.map(_id => ({ _id }) );
实例:
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
const-album={歌曲:[123454543524]};
const replaced=album.songs.map(_id=>({u id}));
console.log(已替换);
一些注意事项:
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
使用map
,返回希望新数组包含的对象。分配给参数e
只会更改参数的值,而该值不会保留在任何位置
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
不需要对象。在那里分配,直接创建对象即可,因此:
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
const replaced = album.songs.map(e => { return { _id : e }; } );
或简洁的形式:
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
const replaced = album.songs.map(e => ({ _id : e }) );
请注意,由于我们希望返回使用对象初始值设定项创建的对象,并且初始值设定项中的{
将启动函数体,因此我们将要返回的值包装在()
中
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
如果我们将参数的名称更改为\u id
,我们甚至可以利用速记属性表示法:
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
const replaced = album.songs.map(_id => ({ _id }) );
实例:
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
const-album={歌曲:[123454543524]};
const replaced=album.songs.map(_id=>({u id}));
console.log(已替换);
映射函数希望您为每次迭代返回一个值:
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
console.log([1,2].map(n=>n*2))
map函数希望您为每个迭代返回一个值:
const replaced = album.songs.map( e => { e = Object.assign({}, { _id : 123 }) } );
console.log([1,2].map(n=>n*2))
您使用albums.songs
来定义相册,并且您正在使用album.song
和map…?因为您在{
,没有隐式返回值。@standby954抱歉,这是一个输入错误。我更正了它。您使用了相册.歌曲
来定义相册,您正在使用相册.歌曲
和映射…?因为您在{}
中有箭头函数体,所以没有隐式返回值。@standby954抱歉,这是一个输入错误。我更正了它。