我想使用JavaScript在Google电子表格中实现一个功能。我有:
RateLimit
我有一个介于1和12之间的第三个数字。如果我的数字是6,结果将需要:111111000000。如果我的数字是8,结果将需要是111111110000。
到目前为止,我被困在这里:
var s1 = "000000000000"; // (12 zeros)
var n1 = 1;
答案 0 :(得分:1)
const replacement = "1"
function replaceZeros(n) {
var result = "000000000000"
while (n --> 0) { // it actually mean `n-- > 0`, but it looks cooler that way
result = result.replace(/0/, replacement)
}
return result
}
这只是替换字符串0
次中的第一个n
。
请参阅demo on JS Bin。
答案 1 :(得分:1)
我更喜欢简单的方法:
take 1 $ filter even [1..10]
答案 2 :(得分:0)
有趣。我会尝试
function REP(b1) {
var ret = ""
for (var i = 0; i < 12; i++){
if(i < b1){
ret += "1";
}
else{
ret += "0";
}
}
return ret;
}
hrm ......虽然可能有更好的方式......
编辑:哦,是的,我认为你可以做到:function REP(b1) {
if(isNaN(b1) || b1 < 1 || b1 > 12){
return 'no answer';
}
return "1".repeat(b1) + "0".repeat(12-b1);
}
答案 3 :(得分:0)
您可以使用Array.join
重复字符
参见以下示例......
alert(REP(6));
function REP(b1) {
var s1 = "000000000000";
var n1 = 1;
if (b1 >=1 && b1 <= 12) {
return (Array(b1 + 1).join(n1) + s1).substr(0, 12);
} else{
return "no value" ;
}
}
&#13;
答案 4 :(得分:0)
不确定这是多么高效,但这是一种正则表达式方法。
function REP(b1) {
if (b1 < 1 || b1 > 12) return 'no value';
var rx = new RegExp('0{' + b1 + '}');
return '000000000000'.replace(rx, Array(b1 + 1).join(1));
}