Javascript 如何用对象替换数组中的项?

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”数组中的项目。它适用于字符串或数字

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 }) } );
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抱歉,这是一个输入错误。我更正了它。