根据优先级获取数组的值
Get value of an array based on priority
我有一个基于优先级的对象数组,我需要形成一个对象数组。下面是我尝试过的代码
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]))
}
}
我得到的输出是
data
undefined
data
{"ACTION_TYPE":"CREATE","EXECUTION_TYPE":"N_EXECUTION"}
我想要基于我的数组arr
的数据。就像首先R_PRE_EXECUTION
数据必须形成然后S_PRE_EXECUTION
然后N_PRE_EXECUTION
,不知道我哪里出错了。
看起来您想根据 arr
给出的顺序对data_res
进行排序。
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"];
data_res.sort(function(a, b) {
var aKey = arr.indexOf(a.EXECUTION_TYPE);
var bKey = arr.indexOf(b.EXECUTION_TYPE);
return aKey - bKey;
});
document.write("<pre>" + 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"];
var ordered = [];
for (var j = 0; j < arr.length; j++) {
for (var i = 0; i < data_res.length; i++) {
if (arr[j].indexOf(data_res[i].EXECUTION_TYPE) > -1) {
ordered.push(data_res[i]);
}
}
}
document.write('<pre>' + JSON.stringify(ordered, 0,3) + '</pre>');
第一个indexOf
与数组的第三个元素匹配,给出的索引为 2
。data_res只有 2 个元素,因此data_res[temp]
给出了undefined
值。
你可以这样做
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]))
}
}
相关文章:
- 从json子数组获取数据
- 从javascript数组获取php的日期时间
- 从表中的 JSON 数组获取数据
- 每个表的2D数组获取坐标JTSL,JAVASCRIPT
- javascript从元素到数组获取文本
- 如何从数组获取链接以在youtube Iframe API中播放
- JSON 编码多维数组获取值
- 如何从两个 JSON 数组获取增量
- 通过单击按钮数组获取隐藏 html 元素值的当前数组
- 在 JavaScript 中从内部数组获取数据
- 从数组获取非重复索引在 0 时失败
- JavaScript 从对象中的数组获取数组
- 如何通过 ajax 将 php 数组作为 javascript 数组获取
- 快速从 2D 数组获取索引,无需迭代 jquery
- 从 Nodejs socketio 数组获取所有套接字 id
- 无法动态从 json 数组获取数据
- 如何在javascript中使用数组获取和设置html标签的值
- jQuery对象数组获取一个项作为jQuery对象
- 如何在不向输出数组获取空值的情况下拆分字符串
- 从输入到数组获取数据