Javascript 如何将交叉过滤器(即多维数组)转换回数组?

Javascript 如何将交叉过滤器(即多维数组)转换回数组?,javascript,arrays,json,crossfilter,Javascript,Arrays,Json,Crossfilter,例如,假设我通过执行以下操作将此数组转换为交叉过滤器 var Array = [ {Id: "01", Name: "A", Price: "1.00", Quantity: "1"}, {Id: "02", Name: "B", Price: "10.00", Quantity: "1"}, {Id: "04", Name: "C", Price: "9.50", Quantity: "10"},

例如,假设我通过执行以下操作将此数组转换为交叉过滤器

var Array = [
            {Id: "01", Name: "A", Price: "1.00", Quantity: "1"},
            {Id: "02", Name: "B", Price: "10.00", Quantity: "1"},
            {Id: "04", Name: "C", Price: "9.50", Quantity: "10"},
            {Id: "03", Name: "a", Price: "9.00", Quantity: "2"},
            {Id: "06", Name: "b", Price: "100.00", Quantity: "2"},
            {Id: "05",Name: "c", Price: "1.20", Quantity: "2"}
        ];

var ndx = crossfilter(Array);
我如何将它从多维数组更改回上面的原始形式,它最初是在数组中定义的

我尝试了以下函数

function transform_back_to_array(ndx){
var f = eval(ndx)
return JSON.stringify(f)
};
输出应如下所示,且应与原始输出相同:

[
                {Id: "01", Name: "A", Price: "1.00", Quantity: "1"},
                {Id: "02", Name: "B", Price: "10.00", Quantity: "1"},
                {Id: "04", Name: "C", Price: "9.50", Quantity: "10"},
                {Id: "03", Name: "a", Price: "9.00", Quantity: "2"},
                {Id: "06", Name: "b", Price: "100.00", Quantity: "2"},
                {Id: "05",Name: "c", Price: "1.20", Quantity: "2"}
            ];
请参阅此代码笔,了解我将原始数组转换回其原始形式的尝试:

在a中,以下函数用于在控制台上打印ndx的结果。我相信这有一些线索:

function print_filter(filter){
    var f=eval(filter);
    if (typeof(f.length) != "undefined") {}else{}
    if (typeof(f.top) != "undefined") {f=f.top(Infinity);}else{}
    if (typeof(f.dimension) != "undefined") {f=f.dimension(function(d) { return "";}).top(Infinity);}else{}
    console.log(filter+"("+f.length+") = "+JSON.stringify(f).replace("[","[\n\t").replace(/}\,/g,"},\n\t").replace("]","\n]"));
};

你能写一个你想要的输出数组吗?我不能忘记这样一个事实:你可以在控制台上打印交叉过滤器,但你不能简单地将它改回数组。例如,请参阅上面的print_filter函数。您能澄清一下您在这里到底想做什么吗?您已经打印了两次相同的数组对象,表示这是它的方式,这是您想要的方式。从我看来,他们完全一样。你想做什么?简而言之,我希望能够获取一个数组,将其转换为交叉滤波器,然后将其转换回数组。我想将其转换回数组的原因是,我想将使用crossfilter过滤的数据转换成一个只能接受数组而不能接受crossfilter的函数。这有意义吗?print_filter使用,with.dimensionfunction{…}检索记录,因为.top本身不是交叉过滤器的方法。