Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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_Jquery_Arrays - Fatal编程技术网

Javascript 如何从单个阵列对象中的多个阵列对象创建阵列?

Javascript 如何从单个阵列对象中的多个阵列对象创建阵列?,javascript,jquery,arrays,Javascript,Jquery,Arrays,希望你们都做得很好,目前我陷入了一个问题,试图找到可能的方法来生成一个合适的数组对象组合,这对我的csv下载是可行的 我有一个类型为的数组:- [Array(4),Array(10),Array(2),Array(15),..] 展开它可以显示如下:- var arr= [ [{life_events: "Started studying at Escola Universitària Formatic Barcelona"}, {life_events: "Got a Pet"}, {li

希望你们都做得很好,目前我陷入了一个问题,试图找到可能的方法来生成一个合适的数组对象组合,这对我的csv下载是可行的

我有一个类型为的数组:-

[Array(4),Array(10),Array(2),Array(15),..]
展开它可以显示如下:-

var arr= [

[{life_events: "Started studying at Escola Universitària Formatic Barcelona"}, {life_events: "Got a Pet"}, {life_events: "Travelled"}],
[{bio: "No additional details to show"}],
[{places_relationship: ""}],
[{contact_info: "Birthday6 May 1995"}, {contact_info: "No contact info to show"}],
[{places_living: "Barcelona, Spain"}],
[{overviewsection: "Works at En Mi Casa"}],
[{overviewsection: "Studies Dirección Formatic Barcelona"}]]
上述阵列对象的预期输出:-

 [
{life_events: "Started studying at Escola Universitària Formatic Barcelona",bio: "No additional details to show",places_relationship: "", contact_info: "Birthday6 May 1995", places_living: "Barcelona, Spain", overviewsection: "Works at En Mi Casa",overviewsection: "Studies Dirección Formatic Barcelona"},
{life_events: "Got a Pet",bio: "No additional details to show",places_relationship: "", contact_info: "No contact info to show", places_living: "Barcelona, Spain", overviewsection: "Works at En Mi Casa",overviewsection: "Studies Dirección Formatic Barcelona"}
]
请让我知道,从上述阵列中获得此类结果的最佳解决方案是什么

请考虑这一点来理解我的查询:-< /P> 是的,当然,请检查以下内容:-考虑输入示例:-

[ { a : 1 },{ a : 2 } ] [ { b : 1 } , { b : 2 } ] [ { c : 1 },{ c : 2 } ]
输出应该如下:-`[{a:1,b:1,c:1},{a:2,b:2,c:2}]

我也在共享我的代码,请检查:-

function convertArrayOfObjectsToCSV(args) {  
        var result, ctr, keys, columnDelimiter, lineDelimiter, data;
        data = args.data || null;

        if (data == null || !data.length) {
            return null;
        }

        columnDelimiter = args.columnDelimiter || ',';
        lineDelimiter = args.lineDelimiter || '\n';

        keys = Object.keys(data[0]);

        result = '';
        result += keys.join(columnDelimiter);
        result += lineDelimiter;

        data.forEach(function(item) {
            ctr = 0;
            keys.forEach(function(key) {
                if (ctr > 0) result += columnDelimiter;

                result += item[key];
                ctr++;
            });
            result += lineDelimiter;
        });
        return result;
    }   

    function downloadCSV(args, stockData) {  
        var data, filename, link;
        var csv = convertArrayOfObjectsToCSV({
            data: stockData
        });
        if (csv == null) return;

        filename = args.filename || 'data.csv';
        if (!csv.match(/^data:text\/csv/i)) {
            csv = 'data:text/csv;charset=utf-8,' + csv;
        }
        jQuery.trim(csv);
        data = encodeURI(csv);

        link = document.createElement('a');
        link.setAttribute('href', data);
        link.setAttribute('download', filename);
        link.click();
    }

    function merge_data(){
        var my_main_arry = [];
        chrome.storage.local.get('overviewsection_data', function(data) {
            var data = data.overviewsection_data;
            console.log('i am here', data); // here the data contains that array.
            var opts = {};

            $(data).each(function(key,value){
                $(value).each(function(i,val){
                    $.extend(opts,val); // i tried to fix by using this but its not working as expected
                    my_main_arry.push(opts);
                })
            })
            console.log('my main array', my_main_arry);
            downloadCSV('data.csv', my_main_arry);
        });
    }

提前谢谢

步骤:

  • 创建一个数组来存储结果
  • 对您拥有的每个
    life\u事件进行迭代
  • 在每次迭代中使用索引,使用其他数组中的每个属性构造一个对象
  • 将对象推入结果数组

  • 步骤:

  • 创建一个数组来存储结果
  • 对您拥有的每个
    life\u事件进行迭代
  • 在每次迭代中使用索引,使用其他数组中的每个属性构造一个对象
  • 将对象推入结果数组
  • 
    var arr=[
    [{“a”:1},{“d”:2}],
    [{“c”:3}]
    ]
    var combinedArr=arr.reduce((附件,元件)=>(附件推送(…元件),附件),[])
    console.log(combinedArr)
    
    var arr=[
    [{“a”:1},{“d”:2}],
    [{“c”:3}]
    ]
    var combinedArr=arr.reduce((附件,元件)=>(附件推送(…元件),附件),[])
    
    console.log(combinedArr)
    我不确定这是否是您想要的。您可以使用和执行以下操作:

    const输入=[
    [{a:1},{a:2}],
    [{b:1},{b:2}],
    [{c:1},{c:2}]
    ]
    const maxLength=Math.max(…input.map(a=>a.length))
    常量输出=
    从({length:maxLength},
    ({,i)=>({…input.reduce((r,a,i1)=>({…r,…a[i]}),{}))
    
    console.log(输出)
    我不确定这是否是您想要的。您可以使用和执行以下操作:

    const输入=[
    [{a:1},{a:2}],
    [{b:1},{b:2}],
    [{c:1},{c:2}]
    ]
    const maxLength=Math.max(…input.map(a=>a.length))
    常量输出=
    从({length:maxLength},
    ({,i)=>({…input.reduce((r,a,i1)=>({…r,…a[i]}),{}))
    
    console.log(输出)
    我的简单解决方案是:

    var initialArray=[
    [{a:1},{a:2},{a:3}],
    [{b:1},{b:2}],
    [{c:1},{c:2}]
    ];
    功能排序(arr){
    var maxEntries=0;//最后将有多少个数组
    var baseObj={};//baseObj将={a:'',b:'',c:'}
    arr.forEach(函数(集合){
    如果(collection.length>maxEntries)maxEntries=collection.length;
    var currentKey=Object.keys(集合[0])[0];//获取密钥名以将其存储在baseObj中
    baseObj[currentKey]='';//默认值
    });
    var newArray=[];
    对于(变量i=0;ilog(“结果:,sortArray(initialArray))我天真的解决方案是:

    var initialArray=[
    [{a:1},{a:2},{a:3}],
    [{b:1},{b:2}],
    [{c:1},{c:2}]
    ];
    功能排序(arr){
    var maxEntries=0;//最后将有多少个数组
    var baseObj={};//baseObj将={a:'',b:'',c:'}
    arr.forEach(函数(集合){
    如果(collection.length>maxEntries)maxEntries=collection.length;
    var currentKey=Object.keys(集合[0])[0];//获取密钥名以将其存储在baseObj中
    baseObj[currentKey]='';//默认值
    });
    var newArray=[];
    对于(变量i=0;ilog(“结果:,sortArray(initialArray))overview section
    在输出结果中出现两次5和6也应该是一个数组,在这种情况下,这也是一个数组,我刚刚将它放在展开形式中。因此,基本上你想要的是,如果子数组中有多个对象,它应该附加到一个新的对象中?你能提供一个有效的输入和输出以及一个关于如何获得输出的清晰的问题陈述吗?不带索引的实际数组或
    (10)
    。因为我无法判断
    5:{overview section:“在En Mi Casa工作”}
    是否为数组,请给出一个简单的例子。我无法得到它并告诉我们你尝试了什么。另外请注意,
    overview section
    在输出结果中出现两次5和6也应该是一个数组,在这种情况下,这也是一个数组,我刚刚将它放在展开形式中。因此,基本上你想要的是,如果子数组中有多个对象,它应该附加到一个新的对象中?你能提供一个有效的输入和输出以及一个关于如何获得输出的清晰的问题陈述吗?不带索引的实际数组或
    (10)
    。因为我不知道
    5:{Overview Section:“在En Mi Casa工作”}
    是一个数组还是其他数组,你能给我举个例子做同样的事情吗?holydragon你能给我举个例子做同样的事情吗?嘿,这是n