let arr = ['ab','ab','ac','a','a','a'] //封装一个函数传入arr
let relst=['ab1','ab2','ac1','a1','a2','a3'] //输出
let arr = ['ab','ab','ac','a','a','a'] //封装一个函数传入arr
let relst=['ab1','ab2','ac1','a1','a2','a3'] //输出
let data = ['ab','ab','ac','a','a','a']
demo(data) // => ['ab1','ab2','ac1','a1','a2','a3']
function demo (arr) {
let res = [], map = arr.reduce((obj, key) => {
obj[key] = (obj[key] || 0) + 1
return obj
}, {})
for(let key in map) {
for(let a=0; a < map[key]; a++) {
res.push(`${key}${a+1}`)
}
}
return res
}
let arr = ['ab', 'ab', 'ac', 'a', 'a', 'a']
function relst(arr) {
let b = {}
arr.forEach(item => {
if (b[item]) {
b[item]++
} else {
b[item] = 1
}
})
let c = []
for (let [key, value] of Object.entries(b)) {
for (let i = 1; i < value + 1; i++) {
c.push(key + i)
}
}
return c
}
relst(arr)
function reduce(arr) {
var ret = [];
if (Array.isArray(arr)) {
for (var num, i = 0; i < arr.length; ++i) {
num = arr[i] === arr[i - 1] ? ++num : 1;
ret.push(arr[i] + num);
}
}
return ret;
}
console.log(reduce(arr));
10 回答11.4k 阅读
4 回答3.3k 阅读✓ 已解决
2 回答2.9k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答2k 阅读✓ 已解决
4 回答2k 阅读✓ 已解决
使用一个变量作为计数器即可: