我有一个数组。我想为该数组中的每个元素添加一些字符(:,\n
),以便在文本框中显示。
目前这就是我正在做的事情
$scope.source.arr = .... //This is an array
var actualText = "";
function func() {
$scope.source.arr.forEach(function(ele){
actualText += "***" + ele + " - \n"; //Adding necessary characters
})
}
var showText = function() {
func(); //Calling the function that populates the text as needed
var textBox = {
text : actualText;
...
}
}
有更好的方法吗?
答案 0 :(得分:9)
您只需使用Array.prototype.map
创建一个包含更改字符串的新Array对象,例如
var textBox = {
text: $scope.source.arr.map(function(ele) {
return "***" + ele + " - ";
}).join("\n"),
...
};
对于arr
中的每个元素,我们创建一个与之对应的新字符串并创建一个字符串数组。最后,我们使用\n
加入数组中的所有字符串。
答案 1 :(得分:0)
您可以使用Array.prototype.map,Array.prototype.reduce使其更好。
在这里检查缩小功能https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
var prefix = "***";
var postfix = "$$$";
var targetStrArr = ["apple", "banana"]
var resultStr = targetStrArr.map(function(ele){
return prefix + ele + postfix; //Adding necessary characters
}).reduce(function(prevVal, curVal) {
return prevVal + curVal;
});
console.log(resultStr); // ***apple$$$***banana$$$