试图保持输入参数不变
Trying to leave input parameters unchanged
我正在尝试编写一个函数,该函数对数组执行操作,并返回该数组的不同副本,并保持原始副本不变。我想我可以通过声明var array2 = array
然后继续执行数组操作来实现这一点。我做错了什么?
这是我的示例函数:
var partition = function(array, p){
var pivot = array[p];
var length = array.length;
// make a copy and move pivot to the front
var array2 = array;
array2[p] = array2[0];
array2[0] = pivot;
// partition the array
var i = 1;
for (var j = 1; j < length; j++){
//console.log('i='+i+', j='+j)
if (array2[j] < pivot) {
var temp = array2[j];
array2[j] = array2[i];
array2[i] = temp;
i++;
}
}
//console.log('array after partitioning: ' + array)
// swap pivot
array2[0] = array2[i-1];
array2[i-1] = pivot;
var answer = {array: array2, p: i-1}
return answer;
};
我的示例电话:
var a = [3, 2, 1];
partition(a, 0);
console.log(a); // prints [1,2,3] but I want [3,2,1]
添加此行而不是array2=array
,因为它只是创建对array
的引用,而不是新数组2。
var array2 =array.slice(0); //it will create a new array not the reference.
Fiddlehttp://jsfiddle.net/N64w3/
var array2 = array.slice(0)
或仅array.slice()
将克隆您的阵列
这里您可以参考
相关文章:
- 带有输入参数的Javascript/PHP中的XMLHTTPrequests
- 如何在submit to sightly时将表单输入值作为参数传递给WCMUsePojo
- 更改输入按钮's onClick参数
- 在JS的下拉列表中选择多个输入参数
- 如何将多个参数传递给输入's onChange处理程序
- 如何在javascript中输入值/参数
- 从输入文本中获取值参数
- IE JavaScript参数和填充输入字段
- 如何自定义数据::confirm弹出窗口以提示输入,该输入将附加到请求参数中
- 将多字段html输入组合为一个参数并传递给javascript
- 定义要在网页中用作输入的参数
- 使用输入名称参数在jQuery中取整不起作用
- 通过参数将传递的函数分配给动态创建的输入类型的onclick事件
- 如何为jQuery帖子输入动态数据参数
- 试图理解一个在JS中有两个参数输入的函数(如函数X(param1)(param2))
- 将参数/输入数据传递给 JavaScript 中的自定义元素
- Hubot-未输入参数/输入参数
- 函数,该函数由作为参数输入的单词组成数组
- 如何在 javascript 中使用字符串参数输入作为变量名称
- 作为 element.contains() 的参数输入的有效属性是什么