假设我有一个包含字符串的数组:
["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;
}
}
});
答案 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