从函数重写数组。使用参数引用

时间:2017-05-13 12:45:34

标签: javascript

你能解释一下如何崇拜JavaScript神并解决这个问题。



var array = ['old'];
    
function manageArray(targetArray) {
  targetArray = ['new'];
}

manageArray(array);
alert(array);




这样做的原因是创建一个具有过滤器逻辑的模式,而不是为每个数组声明显式方法,而是对所有数组进行统一规则。

所需逻辑

var numbers = ['1', '2']
var words = ['room', 'car']
var color = ['red', 'blue']

function manageArray(targetArray, value) {
  targetArray = targetArray.filter(existingValue, () => {
    return existingValue != value
  })
}

manageArray(words, 'car');
alert(words);

2 个答案:

答案 0 :(得分:1)

如果您的函数返回它,您将能够访问该数组:

var array = ['old'];
    
function manageArray(targetArray) {
  targetArray = ['new'];
  return targetArray
}

array = manageArray(array);
alert(array);

答案 1 :(得分:1)

据我了解,您希望通过引用传递变量。很遗憾Javascript将数组作为值传递。有一些丑陋的解决方法。

var array = {v: ['old'] };

function manageArray(targetArray) {
  targetArray.v = ['new'];
}

manageArray(array);

var array = ['old'];

function manageArray(targetArray) {
    return ['new'];
}

array = manageArray(array);

进一步阅读: