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

Javascript 根据优先级获取数组的值

Javascript 根据优先级获取数组的值,javascript,arrays,sorting,object,Javascript,Arrays,Sorting,Object,我有一个基于优先级的对象数组,我需要形成一个对象数组。下面是我尝试的代码 var data_res = [{ "ACTION_TYPE": "CREATE", "EXECUTION_TYPE": "N_EXECUTION" }, { "ACTION_TYPE": "CREATE", "EXECUTION_TYPE": "R_PRE_EXECUTION" } ]; var arr = ["R_PRE_EXECUTION", "S_PRE_EXECUTION",

我有一个基于优先级的对象数组,我需要形成一个对象数组。下面是我尝试的代码

var data_res = [{
   "ACTION_TYPE": "CREATE",
   "EXECUTION_TYPE": "N_EXECUTION"
   }, 
   { "ACTION_TYPE": "CREATE",
  "EXECUTION_TYPE": "R_PRE_EXECUTION"
   }
];
var arr =  ["R_PRE_EXECUTION", "S_PRE_EXECUTION", "N_EXECUTION"];
for (var i = 0; i < data_res.length; i++) {
for (var temp in arr) {
    if (data_res[i].RULE_EXECUTION_TYPE.indexOf(arr[temp])>-1) {
        console.log("data")
        console.log(JSON.stringify(data_res[temp]))
    }
}

我需要基于数组的数据
arr
。像第一次
R\u PRE\u EXECUTION
必须先形成数据,然后
S\u PRE\u EXECUTION
,然后再
N\u PRE\u EXECUTION
,我不知道哪里出错了。

看起来您想按照
arr
给出的顺序对
数据进行排序

var数据\u res=[{
“操作类型”:“创建”,
“执行类型”:“N\u执行”
}, {
“操作类型”:“创建”,
“执行类型”:“R\U预执行”
}]
var arr=[“R_PRE_EXECUTION”、“S_PRE_EXECUTION”、“N_EXECUTION”];
数据分辨率排序(功能(a、b){
var-aKey=arr.indexOf(执行类型);
var bKey=arr.indexOf(b.EXECUTION类型);
返回aKey-bKey;
});

document.write(“+JSON.stringify(data_res,0,3))@georg的解决方案非常有效。还有一种方法

var data_res = [{
    "ACTION_TYPE": "CREATE",
    "EXECUTION_TYPE": "N_EXECUTION"
}, {

    "ACTION_TYPE": "CREATE",
    "EXECUTION_TYPE": "R_PRE_EXECUTION"
}]

var arr = ["R_PRE_EXECUTION", "S_PRE_EXECUTION", "N_EXECUTION"];

for (var i = 0; i < data_res.length; i++) {
        if ((arr.indexOf(data_res[i].EXECUTION_TYPE)) > -1) {
            console.log("data")
            console.log(JSON.stringify(data_res[i]))
        }
}
var数据\u res=[{
“操作类型”:“创建”,
“执行类型”:“N\u执行”
},
{
“操作类型”:“创建”,
“执行类型”:“R\U预执行”
}]
var arr=[“R_PRE_EXECUTION”、“S_PRE_EXECUTION”、“N_EXECUTION”];
有序var=[];
对于(var j=0;j-1){
有序推送(数据存储[i]);
}
}
}

document.write(''+JSON.stringify(有序,0,3)+'')
第一个
索引与数组的第三个元素匹配,给出了
2
的索引。
var data_res = [{
    "ACTION_TYPE": "CREATE",
    "EXECUTION_TYPE": "N_EXECUTION"
}, {

    "ACTION_TYPE": "CREATE",
    "EXECUTION_TYPE": "R_PRE_EXECUTION"
}]

var arr = ["R_PRE_EXECUTION", "S_PRE_EXECUTION", "N_EXECUTION"];

for (var i = 0; i < data_res.length; i++) {
        if ((arr.indexOf(data_res[i].EXECUTION_TYPE)) > -1) {
            console.log("data")
            console.log(JSON.stringify(data_res[i]))
        }
}
数据只有2个元素,因此
数据[temp]
给出
未定义的值

你可以这样做

var数据\u res=[{
“操作类型”:“创建”,
“执行类型”:“N\u执行”
}, {
“操作类型”:“创建”,
“执行类型”:“R\U预执行”
}]
var arr=[“R_PRE_EXECUTION”、“S_PRE_EXECUTION”、“N_EXECUTION”];
对于(变量i=0;i-1){
console.log(“数据”)
log(JSON.stringify(data_res[i]))
}
}
EXECUTION\u TYPE:“R\u PRE\u EXECUTION”
此行缺少引号