Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重新排列数组的索引以匹配其他数组_Javascript_Arrays - Fatal编程技术网

Javascript 重新排列数组的索引以匹配其他数组

Javascript 重新排列数组的索引以匹配其他数组,javascript,arrays,Javascript,Arrays,我有两个数组,其中包含相同的元素,但顺序不同,如下所示: var arr1 = [{name: 'Bob', age: 24}, {name: 'Mary',age: 45}, {random: props}]; var arr2 = [{name: 'Mary', age:45 }, {name: 'Bob',24}, {other: randomProps}]; 当然,在这种情况下,一个简单的reverse()就可以做到这一点,但它可能是一个随机排列10个对象的数组 由于两个数组总是包含

我有两个数组,其中包含相同的元素,但顺序不同,如下所示:

var arr1 = [{name: 'Bob', age: 24}, {name: 'Mary',age: 45}, {random: props}]; 
var arr2 = [{name: 'Mary', age:45 }, {name: 'Bob',24}, {other: randomProps}];
当然,在这种情况下,一个简单的reverse()就可以做到这一点,但它可能是一个随机排列10个对象的数组

由于两个数组总是包含一些公共属性(
name
),我应该能够根据
name
重新排列一个数组以匹配另一个数组


有关于如何进行此操作的提示吗?

我认为您可以扫描排列的数组并搜索第二个数组中的元素,然后将它们放入新数组中

new_array;
foreach(element in array_ordered)
{
    temp = search(element[name], array_unordered);
    if(temp != null)
        new_array.add(temp);
}

也许是这样吧?但这假定数组中的每个对象都有name属性

var arr1=[{name:'Bob',年龄:24},{name:'Mary',年龄:45},{random:props}];
var arr2=[{name:'Mary',age:45},{name:'Bob',24},{other:randomProps}];
功能排序(arr){
arr.sort(函数(a,b){
返回a.name>b.name;
}); 
}
sortArray(arr1);

sortArray(arr2)
两个数组都可以重新排列,还是必须在另一个不变的情况下将一个数组重新排列到另一个?如果两个数组都包含相同但顺序不同的元素。。而不是安排它们并使用它们。。你可以使用数组中的任意一个,对吗?我不明白这个问题。如果它们包含相同的元素,为什么不复制第一个列表,而不是对第二个列表重新排序?困惑。@timolawl,嗯,我想这两个数组都可以重新排列,只要名称属性的索引相同。Reddy,我不确定我是否理解Andrew,它们是两个完全不同的数组,碰巧有一些共同的属性。其他不常见的属性是必需的,因此我无法复制。啊哈,我从来没有想到过对这两个数组进行这样的排序。非常感谢。OP不希望按名称排序,而是进行排序,以便名称与第一个数组的顺序相同,除非我弄错了。