一个将字符串结尾添加到数组中每个成员的函数

时间:2019-04-03 03:34:09

标签: javascript arrays string

我想创建一个JS函数,该函数添加一个以数组中每个成员结尾的字符串。预期的函数在调用时应返回如下内容:

addEnding(["clever", "meek", "hurried", "nice"], "ly")

预期输出:

["cleverly", "meekly", "hurriedly", "nicely"] 

感谢所有建议使用map方法的答案,但我想使用for循环,这是我的代码:

const addEnding = (arr, str) => {
  let result = '';
  for (i = 0; i < arr.length; i++) {
    result = arr[i]
    result += str
  }
  return result
}

console.log(addEnding(["new", "pander", "scoop"], "er"))

问题是,当我希望它返回数组+ str结尾的所有元素时,它仅返回数组的第一个元素

10 个答案:

答案 0 :(得分:1)

使用map函数,该函数将遍历您的数组并返回每个数组的修改版本的新数组。

使用字符串插值,您可以轻松地添加后缀

With CreateObject("Scripting.FileSystemObject")
  With .CreateTextFile(Location, , True)
    For i = 2 To lastrow
        For j = 1 To LastCol
            If j = LastCol Then
                TextLine = TextLine & Cells(i, j).Text
            Else
                TextLine = TextLine & Cells(i, j).Text & Deliminator
            End If
        Next j
            .WriteLine TextLine
            TextLine = ""
    Next i
        .Close
  End With
End With

答案 1 :(得分:1)

尝试以下代码

function addEnding(array, suffix) {

  if (Array.isArray(array)) {
    for (var i = 0; i < array.length; i++) {
      array[i] = array[i] + suffix;
    }
  }
  return array;
}

console.log(addEnding(["clever", "meek", "hurried", "nice"], "ly"));

答案 2 :(得分:1)

function addSuffix(arr, suff){
    var newArr=[];
    for (var i = 0; i < arr.length; i++)
       newArr.push(arr[i] + suff);

    return newArr;

}

答案 3 :(得分:1)

您可以将Array#mapString#concat一起使用

function addEnding(words, suffix) {
  return words.map(word => word.concat(suffix))
}

const output = addEnding(["clever", "meek", "hurried", "nice"], "ly");
console.log(output);

答案 4 :(得分:1)

如果您希望使用for循环并希望以一种功能性的方式(选择的方式)进行操作,则可以尝试这样。

  

我已经在 Node REPL 上执行了语句。

     

注意»使用map()方法将返回一个新数组,它不会修改现有数组。如果要更新现有数组,最好使用for / forEach循环。

     

您的错误:您遇到的小错误是»您使用了 result 变量并对其进行了更新。使用arr[i] = arr[i] + str

> const addEnding = (arr, str) => {
... arr.forEach((item, i) => {
.....     arr[i] = item + str;
..... })
... return arr
... }
undefined
> 
> addEnding(["clever", "meek", "hurried", "nice"], "ly")
[ 'cleverly', 'meekly', 'hurriedly', 'nicely' ]
> 
> addEnding(["new", "pander", "scoop"], "er")
[ 'newer', 'panderer', 'scooper' ]
> 

答案 5 :(得分:1)

您将结果声明为字符串,并在迭代过程中将其替换。只需按预期将数据类型更改为array

const addEnding = (arr, str) => { 
  let result = '' // You initiated a string as a result not an array
  for(i=0; i<arr.length; i++) {
    result = arr[i]  // The string got replaced every time it interate
    result += str 
  } 
  return result // The result is always the last item
} 
console.log(addEnding(["new", "pander", "scoop"], "er"))

const arr =["new", "pander", "scoop"]
const str = 'er'

const addEnding = (arr, str) => { 
  let result = []; // Init an array as format output
  for(i=0; i<arr.length; i++) {
    result[i] = arr[i] + str  // assign like this
  } 
  return result 
} 
console.log(addEnding(arr, str))

答案 6 :(得分:1)

const addEnding = (arr, str) => {
    let result = []
    for(i = 0; i < arr.length; i++){
        result[i] = arr[i] + str
    }
    return result
}

答案 7 :(得分:0)

使用map,它将返回通过合并原始数组和后缀中的单词形成的新单词数组

function addEnding(array, suffix) {
  // assuring input is array otherwise map will not work
  if (Array.isArray(array)) {
    return array.map(item => item + suffix)
  }
}
   console.log(addEnding(["clever", "meek", "hurried", "nice"], "ly"))

答案 8 :(得分:0)

使用Array.prototype.map()

const addEnding = (array, suffix) => array.map(word => `${word}${suffix}`);
const result = addEnding(["clever", "meek", "hurried", "nice"], "ly");

console.log(result);

答案 9 :(得分:0)

如果要使用传统的for循环,可以使用以下功能来实现。

function addEnding(arr, end) {
  for(let i=0; i<= arr.length-1; i++)
      arr[i] += end;
  return arr;
}