Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 如何循环此JSON字符串以通过特定键获得结果?_Javascript_Jquery_Loops - Fatal编程技术网

Javascript 如何循环此JSON字符串以通过特定键获得结果?

Javascript 如何循环此JSON字符串以通过特定键获得结果?,javascript,jquery,loops,Javascript,Jquery,Loops,我有一个JSON字符串 var j_string = '[{"ID":"A001","TYPE":"1"},{"ID":"A002","TYPE":"1"},{"ID":"B001","TYPE":"2"},{"ID":"B002","TYPE":"2"},{"ID":"B003","TYPE":"2"}]'; 如何基于类型循环此字符串以获取ID的值 我当前的脚本: //var txt_memo_int = ""; $.each($.parseJSON(j_string), function(

我有一个JSON字符串

var j_string = '[{"ID":"A001","TYPE":"1"},{"ID":"A002","TYPE":"1"},{"ID":"B001","TYPE":"2"},{"ID":"B002","TYPE":"2"},{"ID":"B003","TYPE":"2"}]';
如何基于
类型
循环此字符串以获取
ID的值

我当前的脚本:

//var txt_memo_int = "";
$.each($.parseJSON(j_string), function(){

     $.each(this, function(key,value){

        if(key == "TYPE"){
            if(value == "2"){
               alert(value);
            }
        }

    });
});
我的期望输出:

ID
B001
B002
B003

非常简单,只需使用
filter
删除您不需要的项目,然后按您想要的方式打印即可:)

const j_string='[{“ID”:“A001”,“TYPE”:“1”},{“ID”:“A002”,“TYPE”:“1”},{“ID”:“B001”,“TYPE”:“2”},{“ID”:“B002”,“TYPE”:“2”},{“ID”:“B003”,“TYPE”:“2”};
const requiredType='2';
const filteredResult=JSON.parse(j_string).filter({TYPE})=>TYPE==requiredType);

filteredResult.forEach(({ID})=>console.log(ID))非常简单,只需使用
过滤器
删除您不想要的项目,然后按您想要的方式打印:)

const j_string='[{“ID”:“A001”,“TYPE”:“1”},{“ID”:“A002”,“TYPE”:“1”},{“ID”:“B001”,“TYPE”:“2”},{“ID”:“B002”,“TYPE”:“2”},{“ID”:“B003”,“TYPE”:“2”};
const requiredType='2';
const filteredResult=JSON.parse(j_string).filter({TYPE})=>TYPE==requiredType);

filteredResult.forEach(({ID})=>console.log(ID))
您可以迭代对象数组,并检查属性
TYPE
以获得所需的值和输出
ID

var数组=[{“ID”:“A001”,“TYPE”:“1”},{“ID”:“A002”,“TYPE”:“1”},{“ID”:“B001”,“TYPE”:“2”},{“ID”:“B002”,“TYPE”:“2”},{“ID”:“B003”,“TYPE”:“2”}]
array.forEach(o=>{
如果(o.TYPE=='2'){
控制台日志(o.ID);
}

});
您可以迭代对象数组,并检查属性
TYPE
以获得所需的值和输出
ID

var数组=[{“ID”:“A001”,“TYPE”:“1”},{“ID”:“A002”,“TYPE”:“1”},{“ID”:“B001”,“TYPE”:“2”},{“ID”:“B002”,“TYPE”:“2”},{“ID”:“B003”,“TYPE”:“2”}]
array.forEach(o=>{
如果(o.TYPE=='2'){
控制台日志(o.ID);
}

});这是一个像蒂姆说的对象数组。可以在javascript中这样做:

var j_string = [
    {"ID":"A001","TYPE":"1"},
    {"ID":"A002","TYPE":"1"},
    {"ID":"B001","TYPE":"2"},
    {"ID":"B002","TYPE":"2"},
    {"ID":"B003","TYPE":"2"} ]

for(i=0; i<j_string.length; i++) {
    if(j_string[i].TYPE === '2') {
        console.log(j_string[i].ID)
    }
}
var j_字符串=[
{“ID”:“A001”,“TYPE”:“1”},
{“ID”:“A002”,“TYPE”:“1”},
{“ID”:“B001”,“TYPE”:“2”},
{“ID”:“B002”,“TYPE”:“2”},
{“ID”:“B003”,“类型”:“2”}]

对于(i=0;i,它是一个对象数组,如Teemu所说。它可以用javascript实现,如下所示:

var j_string = [
    {"ID":"A001","TYPE":"1"},
    {"ID":"A002","TYPE":"1"},
    {"ID":"B001","TYPE":"2"},
    {"ID":"B002","TYPE":"2"},
    {"ID":"B003","TYPE":"2"} ]

for(i=0; i<j_string.length; i++) {
    if(j_string[i].TYPE === '2') {
        console.log(j_string[i].ID)
    }
}
var j_字符串=[
{“ID”:“A001”,“TYPE”:“1”},
{“ID”:“A002”,“TYPE”:“1”},
{“ID”:“B001”,“TYPE”:“2”},
{“ID”:“B002”,“TYPE”:“2”},
{“ID”:“B003”,“类型”:“2”}]

对于(i=0;i,您可以根据类型透视JSON数组并缓存它,如果这是您经常执行的操作的话。 最简单的方法是

var j_string = [{"ID":"A001","TYPE":"1"},{"ID":"A002","TYPE":"1"},{"ID":"B001","TYPE":"2"},{"ID":"B002","TYPE":"2"},{"ID":"B003","TYPE":"2"}]
var typeMap = j_string.reduce((acc,item) => {
    if(!acc[item['TYPE']]) {
        acc[item['TYPE']] = [];
    }
    acc[item['TYPE']].push(item);
    return acc;
},{})
现在,您有了一个新的表单对象

{
  1: [{"ID":"A001","TYPE":"1"},{"ID":"A002","TYPE":"1"},
  2: [{"ID":"B001","TYPE":"2"},{"ID":"B002","TYPE":"2"},{"ID":"B003","TYPE":"2"}]
}

很明显,根据类型获取值现在变得很简单。只需将
typeMap[type]
放在type存储所需类型的位置。

如果您经常执行此操作,您可以根据类型透视JSON数组并将其缓存。
     var j_string = '[{"ID":"A001","TYPE":"1"},{"ID":"A002","TYPE":"1"},{"ID":"B001","TYPE":"2"},{"ID":"B002","TYPE":"2"},{"ID":"B003","TYPE":"2"}]';

function myFunction() {
    var parseJString = JSON.parse(j_string);
    var storeArr = [];
    parseJString.find(function(obj){
        if(obj.TYPE == 2){
            storeArr.push(obj.ID);
        }
    });
    document.getElementById("demo").innerHTML = storeArr;
最简单的方法是

var j_string = [{"ID":"A001","TYPE":"1"},{"ID":"A002","TYPE":"1"},{"ID":"B001","TYPE":"2"},{"ID":"B002","TYPE":"2"},{"ID":"B003","TYPE":"2"}]
var typeMap = j_string.reduce((acc,item) => {
    if(!acc[item['TYPE']]) {
        acc[item['TYPE']] = [];
    }
    acc[item['TYPE']].push(item);
    return acc;
},{})
现在,您有了一个新的表单对象

{
  1: [{"ID":"A001","TYPE":"1"},{"ID":"A002","TYPE":"1"},
  2: [{"ID":"B001","TYPE":"2"},{"ID":"B002","TYPE":"2"},{"ID":"B003","TYPE":"2"}]
}

很明显,根据类型获取值现在很简单。只需将
typeMap[type]
放在type存储所需类型的位置。

j_字符串的格式是string,j_字符串的格式是string
     var j_string = '[{"ID":"A001","TYPE":"1"},{"ID":"A002","TYPE":"1"},{"ID":"B001","TYPE":"2"},{"ID":"B002","TYPE":"2"},{"ID":"B003","TYPE":"2"}]';

function myFunction() {
    var parseJString = JSON.parse(j_string);
    var storeArr = [];
    parseJString.find(function(obj){
        if(obj.TYPE == 2){
            storeArr.push(obj.ID);
        }
    });
    document.getElementById("demo").innerHTML = storeArr;