将 indexOf() 值增加一
Increase indexOf() value by one
我需要以这种方式重复字母数组中的每个字母:
例如 [a, b, c, d] => a, bb, ccc, dddd
我猜这部分有问题:splitStr.indexOf(x) + 1)
你能看看这里有什么问题吗?谢谢。 (最终结果应该是A-Bb-Ccc-Dddd为字符串)
function accum(s) {
var splitStr = s.toLowerCase().split('') // [a, b, c, d]
var arr = splitStr.map(x => x.repeat(splitStr.indexOf(x) + 1)) // [a, bb, ccc, ddd]
arr = arr.map(a => a.slice(0, 1).toUpperCase() + a.slice(1).toLowerCase())
return arr.join('-')
}
console.log(accum('abcd'))
使用 map()
回调的索引参数并保存在数组中再次查找它。
您也可以将其合并为一个 map()
而不是两个
function accum(s) {
var splitStr = s.toLowerCase().split('') // [a, b, c, d]
var arr = splitStr.map((x, i) => x.toUpperCase() + x.repeat(i));
return arr.join('-')
}
console.log(accum('abcd'))
您可以使用 Array.map() 回调的 index
参数(第二个),并在第一个 map()
中使用大写来节省性能。
function accum(s)
{
var splitStr = s.toLowerCase().split('');
var arr = splitStr.map((x, idx) => x.toUpperCase() + x.repeat(idx));
return arr.join('-')
}
console.log(accum('abcd'));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
或者,您可以使用 String.replace() and the replacement function:
function accum(s)
{
return s.toLowerCase().replace(/./g, (match, offset) =>
{
let token = offset < s.length - 1 ? "-" : "";
return match.toUpperCase() + match.repeat(offset) + token;
});
}
console.log(accum('abcd'));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
您可以这样映射和加入:
var s = 'AbCd';
var array1 = s. toLowerCase().split(''); //['a','b','c','d'];
const map1 = array1.map((x, index) => x.toUpperCase() + x.repeat(index)).join('-');
console.log(map1);
您可以使用 repeat()。它 returns 一个新字符串,其中包含调用它的字符串的指定数量的副本,连接在一起。
var list = ['a', 'b', 'c', 'd'];
var result = Array.from(list, (v, i) => {
let value = v.repeat(i + 1);
return value.charAt(0).toUpperCase() + value.slice(1)
}).join('-');
console.log(result);
我需要以这种方式重复字母数组中的每个字母: 例如 [a, b, c, d] => a, bb, ccc, dddd
我猜这部分有问题:splitStr.indexOf(x) + 1)
你能看看这里有什么问题吗?谢谢。 (最终结果应该是A-Bb-Ccc-Dddd为字符串)
function accum(s) {
var splitStr = s.toLowerCase().split('') // [a, b, c, d]
var arr = splitStr.map(x => x.repeat(splitStr.indexOf(x) + 1)) // [a, bb, ccc, ddd]
arr = arr.map(a => a.slice(0, 1).toUpperCase() + a.slice(1).toLowerCase())
return arr.join('-')
}
console.log(accum('abcd'))
使用 map()
回调的索引参数并保存在数组中再次查找它。
您也可以将其合并为一个 map()
而不是两个
function accum(s) {
var splitStr = s.toLowerCase().split('') // [a, b, c, d]
var arr = splitStr.map((x, i) => x.toUpperCase() + x.repeat(i));
return arr.join('-')
}
console.log(accum('abcd'))
您可以使用 Array.map() 回调的 index
参数(第二个),并在第一个 map()
中使用大写来节省性能。
function accum(s)
{
var splitStr = s.toLowerCase().split('');
var arr = splitStr.map((x, idx) => x.toUpperCase() + x.repeat(idx));
return arr.join('-')
}
console.log(accum('abcd'));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
或者,您可以使用 String.replace() and the replacement function:
function accum(s)
{
return s.toLowerCase().replace(/./g, (match, offset) =>
{
let token = offset < s.length - 1 ? "-" : "";
return match.toUpperCase() + match.repeat(offset) + token;
});
}
console.log(accum('abcd'));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
您可以这样映射和加入:
var s = 'AbCd';
var array1 = s. toLowerCase().split(''); //['a','b','c','d'];
const map1 = array1.map((x, index) => x.toUpperCase() + x.repeat(index)).join('-');
console.log(map1);
您可以使用 repeat()。它 returns 一个新字符串,其中包含调用它的字符串的指定数量的副本,连接在一起。
var list = ['a', 'b', 'c', 'd'];
var result = Array.from(list, (v, i) => {
let value = v.repeat(i + 1);
return value.charAt(0).toUpperCase() + value.slice(1)
}).join('-');
console.log(result);