函数参数数组,如何影响reference =[]或reference.concat(array2)
Function param array, how to affect reference = [] or reference.concat(array2)?
所以它可能只是我很累,但我似乎无法解决这个问题。
我一直在拿起javascript,我发现可怕的来自actionscript 3,一切都是键入。我有一个直接引用两个数组变量的函数,后来我需要在不同的数据集上再次使用它,所以我把它修改为接受参数,现在它坏了。
我有一个充满元素的数组,第二个是空的。当我调用函数时,从第一个数组中删除一个随机元素并推入第二个数组,该元素也由函数返回。如果第一个数组是空的,我就连接第二个数组把它填满。我的目标是随机遍历元素,并且在完成一个完整的循环之前不让选中的元素再次出现。
在concat之前,我正在使用slice(应该同样有效?),我相信的问题是,我知道有一个参数,当我做'array = array2.slice()'时被重新定义,concat似乎不能解决这个问题。我不知道是否从第一个数组返回单个切片元素是坏的,如果我期待一个字符串,我认为切片是返回一个数组与单个元素,很容易修复那里,虽然通过添加[0]返回语句。
下面是代码://Gets a random element from array, that element is moved from the 'src' array to the 'bin' array,
//this allows random selection without choosing the same element until all of 'src' array elements have been picked
function getRandomElement(array_src,array_bin){
//Randomly selects a tweet from the que, then stores it in another array so each tweet shows once before recycling
if(array_src.length==0 && array_bin.length>0) {array_src.concat(array_bin);} //Recycles array elements when the src array is empty
var randomElement = array_src.splice(Math.floor(Math.random()*array_src.length),1); //Grab a random array element
array_bin.push(randomElement);//array elements stored here to be recycled
return randomElement;
}
我想我可能会使用一个对象与两个属性指向数组和传递这些,虽然它会更好,如果有一个更好的方法。如果没有其他方法,我也可以在array_src上使用push来循环array_bin来解决这个问题。
我不会说这是Felix的复制品。你提供的答案几乎是一样的,但问题本身的措辞不同,我不知道这个术语突变,找到问题/答案并不容易,SO提供的建议链接都不相关。为了让那些不知道这个变异词的人更容易发现答案,值得继续下去。
我很难理解这个问题,但我认为你想知道为什么array_src.concat(array_bin)
似乎没有做任何事情?
这是因为.concat
返回一个新的数组。如果想改变现有的array_src
数组,可以使用.push
:
array_src.push.apply(array_src, array_bin);
一般说来,这与强类型无关。JavaScript(我猜ActionScript也是),是按值传递。这意味着给array_src
赋一个新值不会改变传递给getRandomElement
的变量的值。
但是由于数组在JavaScript(和ActionScript我假设)中是可变的,你可以改变数组本身
- Javascript events: window.event vs argument reference (funct
- 如何使用UI Automation JavaScript Reference for iOS appium获取本机应用程
- Do JS Reference Errors停止运行时线程执行
- TypeError (null reference exception) when using dom-construc
- jQuery Multiple Callbacks "this" reference
- 比较两个数组,如果 Array2 中存在值,则选中复选框
- OOOjavascript:object self-reference返回undefined,但控制台显示它存在
- OOP JavaScript - this reference
- 使用this/self-reference执行javascript闭包会导致内存泄漏
- 函数参数数组,如何影响reference =[]或reference.concat(array2)
- 函数调用后array1.concat(array2)不持久的影响
- “未捕获reference"在ES6类中使用“for of”方法时出现错误
- "reference" in javascript?
- JavaScript + jQuery Reference
- 当对象属性引用对象本身(self reference)时,Javascript内存泄漏
- 如何允许PHP文件只能通过调用reference /view.php访问?url=123
- HTML - reference to jQuery
- 检查array1中的item是否存在于array2中
- reference material for attributes of <a> and <img&g
- Chrome DOM/JavaScript Reference