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

时间:2016-05-08 16:58:43

标签: javascript string

要求用户输入字符串。 打印一个新的字符串,如下所示: 第一个字母,然后是每个其他字母(每隔一个字母)或原始字符串的空格。 提供了以下示例(例如var str=prompt("Insert string"); for(var i=1;i<=str.length;i=i+2){ var str1=str.push[i]; var newStr=str.splice[str[i],str.length-1]; } console.log(newStr);

  <?php
   $target_dir = "images/";// Check if image file is a actual image or fake image
   if(isset($_POST["submit"])) {
     $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); //ERROR 1
     $uploadOk = 1;
     $imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
     $check = getimagesize($_FILES["fileToUpload"]["name"]);
        if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
        } else {
        echo "File is not an image.";
        $uploadOk = 0;
        }
    if (file_exists($target_file)) {
        echo "Sorry, file already exists.";
        $uploadOk = 0;
    }
     // Check file size
    if ($_FILES["fileToUpload"]["size"] > 500000) { //ERROR 2
        echo "Sorry, your file is too large.";
        $uploadOk = 0;
     }
    // Allow certain file formats
    if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
    && $imageFileType != "gif" ) {
        echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
        $uploadOk = 0;
    }
    // Check if $uploadOk is set to 0 by an error
    if ($uploadOk == 0) {
        echo "Sorry, your file was not uploaded.";
    // if everything is ok, try to upload file
    } else {
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
        } else {
        echo "Sorry, there was an error uploading your file.";
        }
    }
}
// Check if file already exists


?> 

7 个答案:

答案 0 :(得分:1)

根据您的代码,尝试:

var str = prompt("Insert string");
var newStr = '';
for(var i = 0; i < str.length; i = i + 2){
  newStr += str[i];
}
console.log(newStr);

答案 1 :(得分:0)

您可以这样做。使用Array#filter

var str = 'Airplane';

    str.split('').filter(function(val,key){  

        return key%2==0;

    }).join('');

答案 2 :(得分:0)

您可以执行类似

的操作
var str = "Good Day";
var res = str.split("").filter(function(str, index) {
    return index % 2 == 0; 
}).join('');

示例https://jsfiddle.net/mo44dhyq/

.split('') - 它会将字符串拆分成每个字母的数组并返回数组(documentation)。

.filter(function(str, index) {return index % 2 == 0; }) - 这将迭代数组中的元素(从split()函数返回)并仅返回偶数索引(documentation)。

.join('') - 将filter()函数的结果加入新字符串(documentation)。

答案 3 :(得分:0)

for周期内声明的变量仅在该上下文中可用,因此console.log(newStr)将打印undefined。能够“保存你的工作”#34;你应该在循环之外定义一些变量。

以下是一个例子:

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

答案 4 :(得分:0)

使用String.splitArray.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"

答案 5 :(得分:0)

您可以使用正则表达式和适当的替换。

编辑:带空格的提案。

document.write('<pre>' + 'Airplane'.replace(/(.)./g, '$1') + '</pre>');
document.write('<pre>' + 'Good Day'.replace(/(.)./g, '$1') + '</pre>');

document.write('<pre>' + 'Airplane'.replace(/(.)./g, '$1 ') + '</pre>');
document.write('<pre>' + 'Good Day'.replace(/(.)./g, '$1 ') + '</pre>');

答案 6 :(得分:0)

这是一个简单的代码:

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

我希望这应该是问题所在。 首先使用split将字符串转换为字符数组,然后遍历数组。请记住splice返回一个数组并影响原始数组。