【发布时间】:2011-09-10 17:44:02
【问题描述】:
给定一个对象,其中 Key 作为一个数组(位置),Value 作为一个数组:
// Example Object
0,2 : [6, 8, 9]
0,3 : [1, 6, 8]
0,4 : [6, 8]
0,5 : [6, 8]
0,6 : [4, 5, 8, 9]
0,7 : [5, 8]
0,8 : [4, 5, 7, 9]
(它是这样创建的:
x = {};
x[[0,2]] = [6, 8, 9];
x[[0,3]] = [1, 6, 8];
...
现在,我想将我的对象缩小到这个范围,通过检查数组中的任何数字是否只出现在这个数组中,而不是在其他值的数组中,然后消除里面的所有其他数字保存唯一编号的特定数组。
(规则:给定数组内没有重复,因此无需检查):
// Result Object
0,2 : [6, 8, 9]
0,3 : [1]
0,4 : [6, 8]
0,5 : [6, 8]
0,6 : [4, 5, 8, 9] // now 4 becomes also a "loner"
0,7 : [5, 8]
0,8 : [7]
所以这里在 Key [0,3] 中,Value 的数组被缩小到只有 [1],因为 1 是一个唯一的数字,不会出现在另一个数组中。
我无法为此考虑一个有效的模式......
【问题讨论】:
-
那么就像两个集合的交集的恭维(如果你认为数组是集合)?
-
这个问题我仔细看了4遍还是看不懂问题。
-
是的,这有点复杂。我不确切知道如何实施解决方案来更改给定的对象以匹配所需的结果......仍然不清楚?
-
看不懂就没法回答了;)
-
如您所见,有一个示例对象和一个结果对象,答案是从示例状态到结果状态的方式。这里的关键是消除一个值数组中的所有数字,如果数组中的一个数字在所有其他值的数组中是唯一的...
标签: javascript