Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays - Fatal编程技术网

Javascript 错误:未捕获类型错误:无法读取属性';价值';未定义的

Javascript 错误:未捕获类型错误:无法读取属性';价值';未定义的,javascript,arrays,Javascript,Arrays,myData字符串的值在 var myData = '[["absa",1447842600000,1492],["amer",1447842600000,8698],["apac",1447842600000,8361],["emea",1447842540000,70406],["odc",1447842660000,0]]'; $(document).ready(function () { var myData = new Array(); for (i in myDat

myData
字符串的值在

var myData = '[["absa",1447842600000,1492],["amer",1447842600000,8698],["apac",1447842600000,8361],["emea",1447842540000,70406],["odc",1447842660000,0]]';

$(document).ready(function () {
    var myData = new Array();
    for (i in myData) {
        var item = myData[i];
        var key = item[0];
        var value = [item[1], item[2]];
        var index = getElementindex(key);
        if (index != -1) {
            var element = finalArr[index];
            element.value.push(value);
        } else {
            var newArr = new Array();
            var element = {
                key: "",
                value: ""
            };
            element.key = key;
            newArr.push(value);
            element.value = newArr;
            finalArr.push(element);
        }
    }

    function getElementindex(key) {
        for (i in finalArr) {
            if (finalArr[i].key == key) return -i;
        }
        console.log(JSON.stringify(finalArr));
    }
});
要将字符串转换为JSON对象,请使用

var myData = new Array();
试试这个,eval()将字符串解析为JS中的实际数组

myData = JSON.parse(myData);

变量mstdta=['A',453627726262,10],'A',453627726262,5],'B',453627726262,10],'B',453627726262,0],'C',453627726262,10],'C',453627726262,70];
$(文档).ready(函数(){
var myArray=新数组();
用于(mstdta中的i){
var项目=mstdta[i];
变量键=项目[0];
变量值=[项目[1],项目[2]];
var索引=getElementIndex(键);
如果(索引!=-1){
var元素=myArray[索引];
元素.value.push(值);
}否则{
var newArr=新数组();
var元素={key:,value:};
元素。键=键;
新到达推力(值);
element.value=newArr;
myArray.push(元素);
}
}
函数getElementIndex(键){
for(myArray中的j){
if(myArray[j].key==key)
返回j;
}
返回-1;
}
log(JSON.stringify(myArray));
}); 

期望的是什么?什么不起作用?为什么
myData
被重新初始化为空数组?想法是将数组重新构造为首选JSON
$(document).ready(function() {
    var myData = new Array();
    myDataString = '[["absa",1447842600000,1492],["amer",1447842600000,8698],["apac",1447842600000,8361],["emea",1447842540000,70406],["odc",1447842660000,0]]';
    myData = eval(myDataString);
    // code goes here
<script>
var mstdta=[['A',453627726262,10],['A',453627726262,5],['B',453627726262,10],['B',453627726262,0],['C',453627726262,10],['C',453627726262,70]];

$(document).ready(function() {

    var myArray = new Array();

    for(i in mstdta){
        var item=mstdta[i];
        var key=item[0];
        var value=[item[1],item[2]];
        var index=getElementIndex(key);
        if(index!=-1){
            var element=myArray[index];
            element.value.push(value);

        }else{
            var newArr=new Array();
            var element={key:"",value:""};
            element.key=key;
            newArr.push(value);
            element.value=newArr;
            myArray.push(element);
        }
    }

    function getElementIndex(key){
        for(j in myArray){
            if(myArray[j].key==key)
                return j;
        }
        return -1;
    }
    console.log(JSON.stringify(myArray));


}); 
</script>