如何在不使用string.charAt()的情况下读取数组中字符串的第一个字符?

时间:2017-10-14 02:24:46

标签: javascript

假设我有一个包含字符串的数组:

["1234", "1223", "5454", "abc", "abdd"]

我想读取每个字符串的第一个字符并将其放入一个新数组中:

["1", "1", "5", "a", "a"]

我尝试使用string[0],但似乎它在Javascript中的for循环中不起作用,有什么想法可以解决它吗?

@Ryan的请求在这里是我的代码:

filteredsubstr = substr.filter(function(item){ //substr is an array with strings.
    for (var key in item){
        if(key != 0 || key !=''){
            var fckey = key[0];
            return fckey;
        }
    }
});

3 个答案:

答案 0 :(得分:3)

您需要使用map代替filter



var strings = ["1234", "1223", "5454", "abc", "abdd"]

var firstChars = strings.map(function (string) {
    return string[0];
})

console.log(firstChars)




答案 1 :(得分:1)

使用ES6,您可以使用destructuring assignment,因为字符串是可迭代的。



var array = ["1234", "1223", "5454", "abc", "abdd"];
    result = array.map(([a]) => a);
    
console.log(result);




答案 2 :(得分:0)

你可以使用。

var testArr = ["1234", "1223", "5454", "abc", "abdd"],
newArr = [];

testArr.forEach( function(str){
    newArr.push(str.substring(0,1));
});

更好的功能和高效版本。

var testArr = ["1234", "1223", "5454", "abc", "abdd"];


function getFirst(arr){
   return arr.map(function(str){
       return str.substring(0,1);
   });
}

console.log(getFirst(testArr));

了解阵列方法的最佳视频 The Array ForEach Method