如何在多维数组javascript中处理数据

如何在多维数组javascript中处理数据,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,例如,我对这个javascript有一个逻辑问题 var stone = [ [1,1,2,1,1], [2,3,2,2,2], [4,5,5,5,5], [6,6,6,7,6], [8,8,8,8,9] ]; 如何查找不同的数字以及数字在数组中的位置/顺序,并返回包含以下信息的变量 var stone = [['number's order','the different number'],[..]]; 结果,变量是 var stone = [ [2,2], [1,3

例如,我对这个javascript有一个逻辑问题

var stone = [
 [1,1,2,1,1],
 [2,3,2,2,2],    
 [4,5,5,5,5],
 [6,6,6,7,6],
 [8,8,8,8,9]
];
如何查找不同的数字以及数字在数组中的位置/顺序,并返回包含以下信息的变量

var stone = [['number's order','the different number'],[..]];
结果,变量是

var stone = [
 [2,2],
 [1,3],    
 [0,4],
 [3,7],
 [4,9]
];
我花了好几天的时间来解决这个问题,并通过循环条件“for”了解到了这一点,但我缺乏基本的javascript逻辑,而且我甚至还没有接近。 我该怎么做,有人能帮忙吗

我只能在这个阶段,当我试图分解索引,仍然在寻找算法和卡住

功能显示(num){
$('#test')。追加($('').text(num));
}
var batu=[
[1,1,2,1,1],
[2,3,2,2,2],    
[4,5,5,5,5],
[6,6,6,7,6],
[8,8,8,8,9]
];
对于(变量i=0;i

您可以使用“”和“”,以实现以下所需的结果

var-stone=[
[1,1,2,1,1],
[2,3,2,2,2],    
[4,5,5,5,5],
[6,6,6,7,6],
[8,8,8,8,9]
];
var getUniquelementWithIndex=(arr)=>
arr.reduce((a,d,i)=>(
a、 长度==0
&&arr.indexOf(d)=arr.lastIndexOf(d)
&&(a=[i,d])
,a)
, [])
var result=stone.map(GetUniquelementWithIndex)

log(result)
您可以首先找到公共值,然后使用其索引查找不同的值。如果找到,退出循环并返回值和索引

var stone=[[1,1,2,1,1],[2,3,2,2],[4,5,5,5],[6,6,7,6],[8,8,8,9],
缺失=石头。地图(a=>{
var r=a[0]==a[1]?a[0]:a[2],
结果;
a、 一些((v,i)=>v!==r&&(结果=[i,v]);
返回结果;
});

console.log(缺失)
下面是一个非常简单的方法,不需要map和reduce,也可以将其添加到2D数组中

 var stone = [
        [1, 1, 2, 1, 1],
        [2, 3, 2, 2, 2],
        [4, 5, 5, 5, 5],
        [6, 6, 6, 7, 6],
        [8, 8, 8, 8, 9]
    ];
    var position = [], diffrent = [];
    var array = [
        [0,0],
        [0,0],
        [0,0],
        [0,0],
        [0,0]
    ];
    for (var i = 0; i < stone.length; i++)
        for (var j = 0; j < stone.length - 1; j++) {
            if (stone[i][j] !== stone[i][j + 1]) {
                diffrent[i] = stone[i][j];
                position[i] = j;
            }
        }
    for (var i = 0; i < stone.length; i++) {
        console.log("Position is :\t" + position[i] + "\tand the diffrent Element is \t" + diffrent[i]);
        array[i][0] =  position[i];
        array[i][1] =  position[i];
    }
var-stone=[
[1, 1, 2, 1, 1],
[2, 3, 2, 2, 2],
[4, 5, 5, 5, 5],
[6, 6, 6, 7, 6],
[8, 8, 8, 8, 9]
];
变量位置=[],差异=[];
变量数组=[
[0,0],
[0,0],
[0,0],
[0,0],
[0,0]
];
对于(变量i=0;i
看看这篇文章,如果你想寻找解构,你可以在那里搜索我的用户名,我已经写了一些例子。文章中的问题似乎根本不包括解决问题的方法。StackOverflow希望您能这样做,因为您的尝试有助于我们更好地了解您的需求。请编辑问题以显示您已尝试过的内容,以便说明您在某个问题中遇到的具体问题。有关更多信息,请查看并拍摄。您好,感谢您提醒我展示我的尝试,因为我认为它甚至不接近答案,所以我对发布它没有任何信心@CertainPerformance@Jordyhyde添加您的输入有助于其他用户了解您正在向哪个方向移动,因此这总是有帮助的:)现在,您可以在下面找到许多答案,以检查您是否获得了解决方案。非常感谢大家,我甚至不知道以前有“地图”和“减少”的方法,欢迎大家研究。请务必充分了解se两种方法,因为它们是最常用的方法。如果您面临此解决方案的任何问题,也请告诉我。