Javascript 在函数中使用map正在改变主数组

Javascript 在函数中使用map正在改变主数组,javascript,ecmascript-6,frontend,Javascript,Ecmascript 6,Frontend,我是JS新手,尝试在代码中使用map array.prototype.map()函数。我需要在不改变主对象结构的情况下,向数组的每个元素添加一个属性。我有这个对象数组 const nav = [ { name: 'Home', title: 'Dashboard', icon: 'home', }, { name: 'About', icon: 'layout-auto', title: 'About', }, { na

我是JS新手,尝试在代码中使用map array.prototype.map()函数。我需要在不改变主对象结构的情况下,向数组的每个元素添加一个属性。我有这个对象数组

const nav = [
  {
    name: 'Home',
    title: 'Dashboard',
    icon: 'home',
  },
  {
    name: 'About',
    icon: 'layout-auto',
    title: 'About',
  },
  {
    name: 'Applications',
    icon: 'applications',
    title: 'Applications',
  },
];
在通过该阵列进行映射后,它还会改变主导航阵列的对象

const mappedNav = (arr) => {
  let newArr = arr.map(nav => {
    nav.title = 'test';
    return element;
  });
}

mapNav(nav);

console.table(nav);
如何在不改变属性的情况下向新数组的对象添加属性?

您可以使用(
)。在对象文本内部使用spread将对象的(自己的可枚举)键复制到新创建的对象文本(
{}
)。通过这种方式,您可以将每个对象映射到一个新对象,该对象具有与当前对象相同的键和值,以及一个覆盖的/new
title
属性

const nav=[{name:'Home',title:'Dashboard',icon:'Home',},{name:'About',icon:'layout auto',title:'About',},{name:'Applications',icon:'Applications',title:'Applications',}];
常数res=nav.map(obj=>{
返回{…obj,标题:“test”};
});
控制台日志(res)您可以使用(
..
)。在对象文本内部使用spread将对象的(自己的可枚举)键复制到新创建的对象文本(
{}
)。通过这种方式,您可以将每个对象映射到一个新对象,该对象具有与当前对象相同的键和值,以及一个覆盖的/new
title
属性

const nav=[{name:'Home',title:'Dashboard',icon:'Home',},{name:'About',icon:'layout auto',title:'About',},{name:'Applications',icon:'Applications',title:'Applications',}];
常数res=nav.map(obj=>{
返回{…obj,标题:“test”};
});
控制台日志(res)map()函数和扩展运算符可以实现这一点

const导航=[
{
姓名:'家',
标题:“仪表板”,
图标:“家”,
},
{
姓名:'关于',
图标:“自动布局”,
标题:"关于",,
},
{
名称:“应用程序”,
图标:“应用程序”,
标题:"申请",,
},
].map(v=>({…v,标题:“test”}));
console.log(nav)
map()函数和spread运算符可以实现这一点

const导航=[
{
姓名:'家',
标题:“仪表板”,
图标:“家”,
},
{
姓名:'关于',
图标:“自动布局”,
标题:"关于",,
},
{
名称:“应用程序”,
图标:“应用程序”,
标题:"申请",,
},
].map(v=>({…v,标题:“test”}));

console.log(nav)
不清楚您想做什么。你说你不想修改
nav
,但是你说你需要为它的每个元素添加一个属性<代码>映射
返回一个新数组。我的意思是我需要在不改变主导航数组的情况下向newArr添加一个新属性。不清楚您要做什么。你说你不想修改
nav
,但是你说你需要为它的每个元素添加一个属性
map
返回一个新数组。我的意思是我需要在不改变主导航数组的情况下向newArr添加一个新属性