js往原数组中添加新对象,每次添加的值+1。

DkahU
  • 8
let arr = [ { name: '张三1', gender: '男', },  { name: '张三2',  gender: '女',  } ]

假如这是后台返回的一组数据,我需要往数组里添加对象,用最简便的方法,使得每次添加的name的值,按照我添加的顺序排列+1呢,像以下这样,就是只有数字+1,萌新求指教!!

let arr = [ 
{ name: '张三1', gender: '男', },  
{ name: '张三2',  gender: '女',  },  
{ name: '张三3',  gender: '男',  },  
{ name: '张三4',  gender: '男',  },  
{ name: '张三5',  gender: '男',  }
]

不是循环添加,而是每次只添加一个对象,且让数字+1

arr.push({ name: '张三', gender: '男', })
回复
阅读 321
3 个回答

image.png

let arr = [ 
{ name: '张三abd0d01', gender: '男', }]
//获取最后一个
let lastObj = Object.assign({name:'',gender:''},arr.slice(-1)[0]);
// 判断存在和数字
if(lastObj && lastObj.name && RegExp(/\d/g).test(lastObj.name)){
  //最后连续数字自增1
  var lastObjName = lastObj.name.toString().match(/\d{1,}/g).slice(-1)[0];
   lastObj.name = lastObj.name.replace(new RegExp("(.*)" + lastObjName), '$1' + (Number(lastObjName) + 1).toString().padStart(lastObjName.length,'0'));
}
arr.push(lastObj);
console.log(arr);

arr.map((v, i) => ({...v, name: v.name + (i + 1)}))

为什么要加一呢 数组本身就是有序的
index不能用吗

你知道吗?

宣传栏