我将尝试提供一个算法,将任何多维数组转换为只包含唯一项的数组:
例子:
上面只是一个例子。我需要这个算法处理任何大小的数组。目前我还没有进展太多。非常感谢您的帮助。
以下是我目前所拥有的 - 它几乎什么都不是,也不美观(顺便说一下-如果使用jQuery有帮助的话,我愿意尝试)。
例子:
var arr = [
["bananas", "oranges"],
["cars", "trucks", "airplanes"],
["Jim", "Bob", "David", "Diana"]
];
// I need to create an array that will contain a unique record of each item in the array
/*
NEED TO OUTPUT TO
newArr = [
["bananas", "cars", "Jim"],
["bananas", "cars", "Bob],
["bananas", "cars", "David],
["bananas", "cars", "Diana],
["bananas", "trucks", "Jim"],
["bananas", "trucks", "Bob],
["bananas", "trucks", "David],
["bananas", "trucks", "Diana],
["bananas", "airplanes", "Jim"],
["bananas", "airplanes", "Bob],
["bananas", "airplanes", "David],
["bananas", "airplanes", "Diana],
["oranges", "cars", "Jim"],
["oranges", "cars", "Bob],
["oranges", "cars", "David],
["oranges", "cars", "Diana],
["oranges", "trucks", "Jim"],
["oranges", "trucks", "Bob],
["oranges", "trucks", "David],
["oranges", "trucks", "Diana],
["oranges", "airplanes", "Jim"],
["oranges", "airplanes", "Bob],
["oranges", "airplanes", "David],
["oranges", "airplanes", "Diana]
];
*/
上面只是一个例子。我需要这个算法处理任何大小的数组。目前我还没有进展太多。非常感谢您的帮助。
以下是我目前所拥有的 - 它几乎什么都不是,也不美观(顺便说一下-如果使用jQuery有帮助的话,我愿意尝试)。
function foo() {
var arr = [
["bananas", "oranges"],
["cars", "trucks", "airplanes"],
["Jim", "Bob", "David", "Diana"]
];
var i = 0, j = 0;
//Define the containing array
var newArr = [];
//Used to calculate the total unique entries (24 in this example: 2 * 3 * 4)
var totalObjects = 1;
//Calculate total unique objects
for (i = 0; i < arr.length; i++) {
totalObjects *= arr[i].length;
}
//Identify the new array to contain 24 arrays each with 3 entries
for (i = 0; i < totalObjects; i++) {
newArr.push(new Array(arr.length));
}
for (i = 0; i < newArr.length; i++) {
for (j = 0; j < newArr[i].length; j++) {
newArr[i][j] = arr[j][i];
}
}
}
foo();