Javascript 第一个字母,然后是原始字符串的第二个字母或空格
要求用户输入一个字符串。 打印由以下内容组成的新字符串: 第一个字母,然后每隔一个字母(每第二个字母)或原始字符串的空格。 给出了下面的示例(例如“飞机”=>“阿伦”;“你好”=>“去a”)Javascript 第一个字母,然后是原始字符串的第二个字母或空格,javascript,string,Javascript,String,要求用户输入一个字符串。 打印由以下内容组成的新字符串: 第一个字母,然后每隔一个字母(每第二个字母)或原始字符串的空格。 给出了下面的示例(例如“飞机”=>“阿伦”;“你好”=>“去a”) var str=prompt(“插入字符串”); 对于(var i=1;i您可以这样做。使用 你可以这样做 var str = "Good Day"; var res = str.split("").filter(function(str, index) { return index % 2 ==
var str=prompt(“插入字符串”);
对于(var i=1;i您可以这样做。使用
你可以这样做
var str = "Good Day";
var res = str.split("").filter(function(str, index) {
return index % 2 == 0;
}).join('');
范例
.split(“”)
-它将按每个字母将字符串拆分为一个数组,并返回数组()
.filter(函数(str,index){return index%2==0;})
-这将迭代数组中的元素(从split()
函数返回),并仅返回偶数索引()
.join(“”)
-将filter()
函数的结果加入一个新字符串()。根据您的代码,尝试:
var str = prompt("Insert string");
var newStr = '';
for(var i = 0; i < str.length; i = i + 2){
newStr += str[i];
}
console.log(newStr);
var str=prompt(“插入字符串”);
var newStr='';
对于(变量i=0;i在中为周期声明的变量将仅在该上下文中可用,因此控制台.log(newStr)
将打印未定义的。为了能够“保存您的工作”,您应该在for周期之外定义一些变量
以下是一个例子:
var str=prompt("Insert string");
var newStr = str[0];
for(var i=1; i<=str.length+2; i=i+2){
newStr = newStr + str[i];
}
console.log(newStr);
var str=prompt(“插入字符串”);
var newStr=str[0];
对于(var i=1;i使用String.split
和Array.forEach
函数的解决方案:
var str = 'Airplane',
arr = str.split(""), cutted = "";
arr.forEach((v, k) => (k % 2 !== 0) || (cutted += v)); // ES6 arrow function expression
console.log(cutted); // "Arln"
可以使用正则表达式和适当的替换
编辑:带有空格的提案
document.write(“+”飞机)。替换(/()./g,$1')+”;
文件。写上(“+”早安“。替换(/()/g,“$1”)+”);
文件。填写(“+”飞机)。替换(/()/g,“$1”)+”;
document.write(“+”Good Day“。替换(/()/g,$1')+”);
下面是一个简单的代码:
var str=prompt(“插入字符串”),
str=str.split(“”),
str1=“”,
len=str.长度;
对于(变量i=0;i
我希望这能解决问题。
首先使用split
将字符串转换为一个字符数组,然后遍历该数组。请记住splice
返回一个数组并影响原始数组。数组以0而不是1开头。上面的代码有什么问题?您得到了什么输出?如果输入是“Goood Day”,则返回iI我认为OP想要“上帝a”作为输出。然而,'good Day'。替换(/()/g,$1')
产生“GodDy”@Redu,你有一个o
太多了。额外的“o”是为了演示正则表达式中的问题。OP希望空格保留在我从问题短语中理解的范围内。@Redu,示例显示每2个字母跳过一个字符串,就像我上面的建议一样。如果OP需要空格,则OP已在示例中说明了这一点。是的,这两个示例都符合您的要求思考,我思考。但是OP没有提到跳过。OP在原始字符串中表示s/he(JeJe?)想要(第一个字母)和(每隔一个字母或空格)。否则,您的解决方案很巧妙。
var str=prompt("Insert string");
var newStr = str[0];
for(var i=1; i<=str.length+2; i=i+2){
newStr = newStr + str[i];
}
console.log(newStr);
var str = 'Airplane',
arr = str.split(""), cutted = "";
arr.forEach((v, k) => (k % 2 !== 0) || (cutted += v)); // ES6 arrow function expression
console.log(cutted); // "Arln"
var str = prompt("Insert string"),
str = str.split(''),
str1 = " ",
len = str.length;
for(var i=0; i < len ;i++){
var newStr=str.splice(0,1);
if((i%2) === 0) {
str1 = str1 + newStr[0];
}
}
console.log(str1);