如何在数组中的每个元素的开头和结尾添加一些文本

时间:2016-01-13 04:46:57

标签: javascript arrays

我有一个数组。我想为该数组中的每个元素添加一些字符(:,\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; 
          ...
     }
}

有更好的方法吗?

2 个答案:

答案 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$$$