Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 第一个字母,然后是原始字符串的第二个字母或空格_Javascript_String - Fatal编程技术网

Javascript 第一个字母,然后是原始字符串的第二个字母或空格

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 ==

要求用户输入一个字符串。 打印由以下内容组成的新字符串: 第一个字母,然后每隔一个字母(每第二个字母)或原始字符串的空格。 给出了下面的示例(例如“飞机”=>“阿伦”;“你好”=>“去a”)

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);