首页 > 解决方案 > 如果变量是函数参数,则使用函数填充字符串变量不起作用

问题描述

此代码有效:https ://jsfiddle.net/Nata_Hamster/b48w3ktx/

let animal = ['cat', 'dog', 'hamster',]
let dataAnim = '';                    
full_anim(animal);
$('.wrap').html(dataAnim);

function full_anim(arr) {
  for (let i in arr) {
        dataAnim += `<div class="animal">${arr[i]}</div><br>`;        
    }
}

但是我需要将 dataAnim 作为函数参数。以下代码不起作用:https ://jsfiddle.net/Nata_Hamster/fxhpoes8/

let animal = ['cat', 'dog', 'hamster',]
let dataAnim = '';                    
full_anim(animal, dataAnim);
$('.wrap').html(dataAnim);

function full_anim(arr, content) {
  for (let i in arr) {
        content += `<div class="animal">${arr[i]}</div><br>`;         
    }
}

标签: arraysfunctionarguments

解决方案


试试这个:

let animal = ['cat', 'dog', 'hamster',]
let dataAnim = '';                    
dataAnim = full_anim(animal, dataAnim);
$('.wrap').html(dataAnim);

function full_anim(arr, content) {
  for (let i in arr) {
        content += `<div class="animal">${arr[i]}</div><br>`;         
    }
  return content;
}

或者你可以这样做:

let animal = ['cat', 'dog', 'hamster',]
let data = { anim: '' };                      
full_anim(animal, data);
$('.wrap').html(data.anim);

function full_anim(arr, data) {
  for (let i in arr) {
        data.anim += `<div class="animal">${arr[i]}</div><br>`;       
    }
}

推荐阅读