Javascript 交换对象数组中的元素
我有一个对象数组,我想交换数组中两个元素的位置。 我试过这个:Javascript 交换对象数组中的元素,javascript,arrays,object,swap,Javascript,Arrays,Object,Swap,我有一个对象数组,我想交换数组中两个元素的位置。 我试过这个: var tempObject = array.splice(index, 1, array[index + 1]); array.splice(index+1, 1, tempObject); 但它似乎不能正常工作,因为它会导致一些奇怪的错误。例如,我无法使用对象的方法。调用数组[x].getName会导致错误 这里有人能帮忙吗 为了以防万一,我使用了object.prototype来添加方法。 或者您可以将函数添加到数组中。pr
var tempObject = array.splice(index, 1, array[index + 1]);
array.splice(index+1, 1, tempObject);
但它似乎不能正常工作,因为它会导致一些奇怪的错误。例如,我无法使用对象的方法。调用数组[x].getName会导致错误
这里有人能帮忙吗
为了以防万一,我使用了object.prototype
来添加方法。
或者您可以将函数添加到数组中。prototype
:
或者您可以将函数添加到数组中。prototype
:
代码中的错误是splice返回一个项目数组,而不是单个项目。由于要提取单个项目,因此可以执行以下操作:
var tempObject = array.splice(index, 1, array[index + 1])[0]; // get the item from the array
array.splice(index+1, 1, tempObject);
提供了较短的版本,也使用了拼接:
array[index] = array.splice(index+1, 1, array[index])[0];
既短又短:
代码中的错误是splice返回一个项目数组,而不是单个项目。由于要提取单个项目,因此可以执行以下操作:
var tempObject = array.splice(index, 1, array[index + 1])[0]; // get the item from the array
array.splice(index+1, 1, tempObject);
提供了较短的版本,也使用了拼接:
array[index] = array.splice(index+1, 1, array[index])[0];
既短又短:
-使用splice比临时变量慢得多。非常感谢!工作得很好使用splice比临时变量慢得多。非常感谢!工作得很好!
function identity(x){return x};
array[index] = identity(array[index+1], array[index+1]=array[index]);