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”
此行缺少引号