Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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/5/fortran/2.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 借助for循环和数组在对象中添加属性_Javascript_Arrays_Object_For Loop_Reference - Fatal编程技术网

Javascript 借助for循环和数组在对象中添加属性

Javascript 借助for循环和数组在对象中添加属性,javascript,arrays,object,for-loop,reference,Javascript,Arrays,Object,For Loop,Reference,我正在尝试向来自数组的对象添加属性。 这是我正在使用的代码: var data = {}; var arr_years = [2013, 2014, 2015]; var arr_quarters2013 = ['Q2', 'Q3', 'Q4']; var arr_quarters2014 = ['Q1', 'Q2', 'Q3', 'Q4']; var arr_quarters2015 = ['Q1', 'Q2', 'Q3', 'Q4']; function createYearObjects

我正在尝试向来自数组的对象添加属性。 这是我正在使用的代码:

var data = {};
var arr_years = [2013, 2014, 2015];
var arr_quarters2013 = ['Q2', 'Q3', 'Q4'];
var arr_quarters2014 = ['Q1', 'Q2', 'Q3', 'Q4'];
var arr_quarters2015 = ['Q1', 'Q2', 'Q3', 'Q4'];

function createYearObjects() {
    for (var i in arr_years) {
        data[arr_years[i]] = '';
    }
}
我试图将数组中每年的季度数添加到对象中的正确属性中。比如说在2013年,我只有第二季度、第三季度和第四季度。那是我第一次尝试。我认为保持简单就可以做到:

function fillYearObjectsWithQuarters() {
    for (var prop in data) {
        data[prop] = arr_quarters[prop];
    }
}
由于没有成功,我试图把它作为一个字符串放在一起,但我所有的想法都只在节点中结束,给了我字符串'arr_quartes2013'-'arr_quartes2015',这不是我想要的,我想得到一个具有该名称的数组的引用

function fillYearObjectsWithQuarters() {
    for (var prop in data) {
        var temp = prop.toString();
        var tempString = 'arr_quarters'+temp.toString();
        console.log(tempString);
    }
}
我还想,为什么不试一试,并摆脱任何可能的异步。这个任务不应该让我接近任何异步问题,但仍然尝试了

createYearObjects();
setTimeout(function() {
    fillYearObjectsWithQuarters();
}, 250);

解决方案是根据您提供的参数,因此使用eval(不太好)。。。

var data={};
var arr_年数=[2013、2014、2015];
2013年第四季度的风险值=['Q2','Q3','Q4'];
2014年第四季度的风险值=['Q1','Q2','Q3','Q4'];
2015年第四季度的风险值=['Q1','Q2','Q3','Q4'];
本年的var;
var季度/年度;
函数createYearObjects(yearsArray){

对于(var i=0;i请添加一个标签,说明您使用的语言,以吸引合适的人。编辑-谢谢!lodo@nococo:您希望数据最终看起来像这样吗?数据:{“2013”:[“第二季度”、“第三季度”、“第四季度”],“2014”:[“第一季度”、“第二季度”、“第三季度”、“第四季度”],“2015”:[“第一季度”、“第二季度”、“第三季度”、“第四季度”]}?非常感谢您的帮助。这正是它应该工作的方式。
var data = {};
var arr_years = [2013, 2014, 2015];
var arr_quarters2013 = ['Q2', 'Q3', 'Q4'];
var arr_quarters2014 = ['Q1', 'Q2', 'Q3', 'Q4'];
var arr_quarters2015 = ['Q1', 'Q2', 'Q3', 'Q4'];
var current_year;
var quarter_year;


function createYearObjects(yearsArray) {
    for (var i=0;i<yearsArray.length;i++) {
        current_year = yearsArray[i];
        quarter_year = eval("arr_quarters"+current_year);
        //console.log("quarter_year: ",quarter_year);
        if (current_year) {
            data[current_year] = quarter_year;
        }
    }
}

createYearObjects(arr_years);

var resultDiv = document.getElementById("result");
resultDiv.innerHTML = JSON.stringify(data);
var data = {};
var arr_years = [2013, 2014, 2015];
var arr_quarters = {}
arr_quarters["2013"] = ['Q2', 'Q3', 'Q4'];
arr_quarters["2014"] = ['Q1', 'Q2', 'Q3', 'Q4'];
arr_quarters["2015"] = ['Q1', 'Q2', 'Q3', 'Q4'];
var current_year;
var quarter_year;

function createYearObjects(yearsArray) {
    for (var i=0;i<yearsArray.length;i++) {
        current_year = yearsArray[i];
        quarter_year = arr_quarters[current_year];
        //console.log("quarter_year: ",quarter_year);
        if (current_year) {
            data[current_year] = quarter_year;
        }
    }
}

createYearObjects(arr_years);

var resultDiv = document.getElementById("result");
resultDiv.innerHTML = JSON.stringify(data);