Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.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 - Fatal编程技术网

Javascript 如何将数据两次推入对象

Javascript 如何将数据两次推入对象,javascript,Javascript,是否有可能将某些数据推入一个对象两次并得到一个结果?我有以下代码: var t = data.datasets, var data = { datasets : (function(){ var arr = []; for (var i=0; i < t.length; i++) { arr.push({ label: t[i].label, data: t[i

是否有可能将某些数据推入一个对象两次并得到一个结果?我有以下代码:

var t = data.datasets,

var data = {
    datasets : (function(){
        var arr = [];
        for (var i=0; i < t.length; i++) {
            arr.push({
                label: t[i].label,
                data: t[i].values
            });
            if (t[i].color === "red"){
                arr.push({
                    fillColor: "rgba(223, 34, 155, 0.48)"
                });
            } else {
                arr.push({
                    fillColor: "rgba(167, 167, 167, 0.64)"
                });
            }
        }
        return arr;
    })()
};

或者我必须在每个条件下推送重复值include?

为什么不这样做:

    for (var i=0; i < t.length; i++) {
        var temp = {
            label: t[i].label,
            data: t[i].values
        };
        if (t[i].color === "red"){
            temp.fillColor = "rgba(223, 34, 155, 0.48)";
        } else {
            temp.fillColor: = "rgba(167, 167, 167, 0.64)";
        }
        arr.push(temp);
    }

我建议构建一个“holder”变量,然后按一下

伪代码

var holder = data;
if(a)
  holder+=moredata;
else
 holder+=otherdata;
然后执行单推

arr.push(holder);

那么,像这样的事情

        for (var i=0; i < t.length; i++) {
            var fillColor = t[i].color === 'red' ? 
                "rgba(223, 34, 155, 0.48)" : 
                "rgba(167, 167, 167, 0.64)";
            arr.push({
                label: t[i].label,
                data: t[i].values,
                fillColor: fillColor
            });
        }

这仍然不能回答这些问题,但我不太了解您在这一点上试图做些什么来给您提供任何建议。

不幸的是,您的问题很难理解。此外,如果代码看起来是这样的话,那么代码将无法工作-代码在定义数据对象之前初始化了t,因此t充其量是未定义的,否则它将抛出异常,因为数据也未定义。不明白您到底想做什么。你想根据某些条件在JSON中插入不同的值吗?我已经编辑了我的问题,只需一次性推送整个对象,这不是JSON。这只是一个普通的Javascript对象。很棒的解决方案,非常感谢您的帮助,这就是我所需要的!Chears!
arr.push(holder);
        for (var i=0; i < t.length; i++) {
            var fillColor = t[i].color === 'red' ? 
                "rgba(223, 34, 155, 0.48)" : 
                "rgba(167, 167, 167, 0.64)";
            arr.push({
                label: t[i].label,
                data: t[i].values,
                fillColor: fillColor
            });
        }