Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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 循环一个JS对象_Javascript_Object_Loops - Fatal编程技术网

Javascript 循环一个JS对象

Javascript 循环一个JS对象,javascript,object,loops,Javascript,Object,Loops,我有一个JS对象: { "data": { "nid": [{ "cid": "32", "uid": "780", "comment": "text" }] }, "request_status": "found" } 如何循环这些项目以获取注释值(“注释”:“文本”)?您实际上不需要循环来获取注释值。只要做 var obj = {"data":{"nid":[{"

我有一个JS对象:

{
    "data": {
        "nid": [{
            "cid": "32",
            "uid": "780",
            "comment": "text"
        }]
    },
    "request_status": "found"
}

如何循环这些项目以获取注释值(“注释”:“文本”)?

您实际上不需要循环来获取注释值。只要做

var obj = {"data":{"nid":[{"cid":"32","uid":"780","comment":"text"}]},"request_status":"found"};

var text = obj.data.nid[0].comment;

或者,如果有多个,您可以使用
forEach

obj.data.nid.forEach(function(val,i) {
    alert( val.comment );
});
var arr = obj.data.nid.map(function(val,i) {
    return val.comment;
});
或者传统的
循环

for( var i = 0; i < obj.data.nid.length; i++ ) {
    alert( obj.data.nid[i].comment );
}
var arr = []
for( var i = 0; i < obj.data.nid.length; i++ ) {
    arr.push( obj.data.nid[i].comment );
}
还是传统的
for
循环

for( var i = 0; i < obj.data.nid.length; i++ ) {
    alert( obj.data.nid[i].comment );
}
var arr = []
for( var i = 0; i < obj.data.nid.length; i++ ) {
    arr.push( obj.data.nid[i].comment );
}
var arr=[]
对于(变量i=0;i
您实际上不需要循环来获取它。只要做

var obj = {"data":{"nid":[{"cid":"32","uid":"780","comment":"text"}]},"request_status":"found"};

var text = obj.data.nid[0].comment;

或者,如果有多个,您可以使用
forEach

obj.data.nid.forEach(function(val,i) {
    alert( val.comment );
});
var arr = obj.data.nid.map(function(val,i) {
    return val.comment;
});
或者传统的
循环

for( var i = 0; i < obj.data.nid.length; i++ ) {
    alert( obj.data.nid[i].comment );
}
var arr = []
for( var i = 0; i < obj.data.nid.length; i++ ) {
    arr.push( obj.data.nid[i].comment );
}
还是传统的
for
循环

for( var i = 0; i < obj.data.nid.length; i++ ) {
    alert( obj.data.nid[i].comment );
}
var arr = []
for( var i = 0; i < obj.data.nid.length; i++ ) {
    arr.push( obj.data.nid[i].comment );
}
var arr=[]
对于(变量i=0;i
如果您只是引用该特定对象(或者如果您使用的每个对象都遵循相同的模式),那么您可以直接访问该值:

var theObj = {"data":{"nid":[{"cid":"32","uid":"780","comment":"text"}]},"request_status":"found"};
alert(theObj.data.nid[0].comment);
如果您想做一些迭代的事情,那么不妨尝试以下方法:

var theObj = {"data":{"nid":[{"cid":"32","uid":"780","comment":"text"}]},"request_status":"found"};
for (var index = 0; index < theObj.data.nid.length; index++) {
    var item = theObj.data.nid[index];
    if (item.comment) {
        alert(item.comment);
    }
}
var theObj={“data”:{“nid”:[{“cid”:“32”,“uid”:“780”,“comment”:“text”}]},“request_status”:“found”};
对于(var index=0;index
或者,如果您真的希望以迭代方式完成整个过程:

window.searchObj = function(theObj) {
    if (theObj.comment) {
        alert(theObj.comment);
    }
    if (theObj instanceof Array) {
        searchArray (theObj);
    }
    else if (theObj instanceof Object) {
        for (var key in theObj) {
            searchObj(theObj[key]);
        }
    }
};

window.searchArray = function(theArray) {
    for (var index = 0; index < theArray.length; index++) {
        var item = theArray[index];
        searchObj(item);
    }
};

var theObj = {"data":{"nid":[{"cid":"32","uid":"780","comment":"text"}]},"request_status":"found"};
searchObj(theObj);
window.searchObj=函数(theObj){
如果(theObj.comment){
警惕(theObj.comment);
}
if(数组的对象实例){
搜索阵列(theObj);
}
else if(对象的对象实例){
for(theObj中的var键){
searchObj(theObj[key]);
}
}
};
window.searchArray=函数(数组){
对于(var index=0;index
如果您只是引用该特定对象(或者如果您使用的每个对象都遵循相同的模式),那么您可以直接访问该值:

var theObj = {"data":{"nid":[{"cid":"32","uid":"780","comment":"text"}]},"request_status":"found"};
alert(theObj.data.nid[0].comment);
如果您想做一些迭代的事情,那么不妨尝试以下方法:

var theObj = {"data":{"nid":[{"cid":"32","uid":"780","comment":"text"}]},"request_status":"found"};
for (var index = 0; index < theObj.data.nid.length; index++) {
    var item = theObj.data.nid[index];
    if (item.comment) {
        alert(item.comment);
    }
}
var theObj={“data”:{“nid”:[{“cid”:“32”,“uid”:“780”,“comment”:“text”}]},“request_status”:“found”};
对于(var index=0;index
或者,如果您真的希望以迭代方式完成整个过程:

window.searchObj = function(theObj) {
    if (theObj.comment) {
        alert(theObj.comment);
    }
    if (theObj instanceof Array) {
        searchArray (theObj);
    }
    else if (theObj instanceof Object) {
        for (var key in theObj) {
            searchObj(theObj[key]);
        }
    }
};

window.searchArray = function(theArray) {
    for (var index = 0; index < theArray.length; index++) {
        var item = theArray[index];
        searchObj(item);
    }
};

var theObj = {"data":{"nid":[{"cid":"32","uid":"780","comment":"text"}]},"request_status":"found"};
searchObj(theObj);
window.searchObj=函数(theObj){
如果(theObj.comment){
警惕(theObj.comment);
}
if(数组的对象实例){
搜索阵列(theObj);
}
else if(对象的对象实例){
for(theObj中的var键){
searchObj(theObj[key]);
}
}
};
window.searchArray=函数(数组){
对于(var index=0;index
给定:

var obj = {
    "data": {
        "nid": [{
            "cid": "32",
            "uid": "780",
            "comment": "text"
        }]
    },
    "request_status": "found"
};
检索注释的直接方法是:

obj["data"]["nid"][0]["comment"]
// or
obj.data.nid[0].comment
至于通过项目“循环”来获取值,我不确定循环有什么意义。你是说你可能不知道对象的结构,但你知道它会在某个地方有一个“注释”字段吗

“nid”数组中只有一项-如果这只是一个示例,但实际上您将拥有一个包含更多值的数组,您可以在该数组中循环:

var nid = obj["data"]["nid"], // get a direct reference to the array to save
    i;                        // repeating obj.data.nid everywhere
for (i=0; i < nid.length; i++) {
   // do something with the comment in the current item
   console.log(nid[i]["comment"]);
}
var nid=obj[“data”][“nid”],//获取要保存的数组的直接引用
i、 //到处重复obj.data.nid
对于(i=0;i
给定:

var obj = {
    "data": {
        "nid": [{
            "cid": "32",
            "uid": "780",
            "comment": "text"
        }]
    },
    "request_status": "found"
};
检索注释的直接方法是:

obj["data"]["nid"][0]["comment"]
// or
obj.data.nid[0].comment
至于通过项目“循环”来获取值,我不确定循环有什么意义。你是说你可能不知道对象的结构,但你知道它会在某个地方有一个“注释”字段吗

“nid”数组中只有一项-如果这只是一个示例,但实际上您将拥有一个包含更多值的数组,您可以在该数组中循环:

var nid = obj["data"]["nid"], // get a direct reference to the array to save
    i;                        // repeating obj.data.nid everywhere
for (i=0; i < nid.length; i++) {
   // do something with the comment in the current item
   console.log(nid[i]["comment"]);
}
var nid=obj[“data”][“nid”],//获取要保存的数组的直接引用
i、 //到处重复obj.data.nid
对于(i=0;i
为什么要循环它?您可以使用类似于
object.data.nid[0]的内容直接获取它。注释
为什么要循环它?您可以使用类似于
object.data.nid[0]的内容直接获取它。注释
谢谢,但是如果nid更改为number?{“data”:{“1222”:[{“cid”:“32”,“uid”:“780”,“comment”:“text”}]},“request_status”:“found”}@Laky:然后将
obj.data.nid
更改为
obj.data[1222]
。或者你是说它可能是一个不同的数字,或者一组几个数字?谢谢,但如果nid改成数字?{“data”:{“1222”:[{“cid”:“32”,“uid”:“780”,“comment”:“text”}]},“request_status”:“found”}@Laky:然后将
obj.data.nid
更改为
obj.data[1222]
。或者你是说它可能是一个不同的数字,或者是一组几个数字?