您好我正在研究Datatables,我只是一个jQuery初学者。我想通过DT呈现属性合并一些JSON输出。我试过这个:
function ( data, type, full ) {
return full["a"] + full["b"] + full["c"] + full["d"];}
但这不起作用,因为当数据行中没有C或D时,将出现“未定义”。所以我转向在发布结果之前检查的条件。
function ( data, type, full ) {
if (full["a"]) {
return full["a"];}
else if (full["a"] && full["b"]) {
return full["a"] + full["b"];}
然后我会经历一些迭代,直到我得到我需要的所有变量 - A,B,C和D.另外,这不起作用。有什么捷径吗?
更新:我现在正在使用map函数,这种函数给了我正在寻找的结果,但我仍然在寻找对变量的细粒度控制。请参阅fiddle。
更新2 :有关同一问题的另一次迭代,请参阅here。
答案 0 :(得分:0)
以下是如何循环对象
var res = [];
for (var o in full) res.push(full[o]);
return res.length==0?"":res.join(",");
var full = {"a":"A","c":"C","d":"D"}, res = [];
for (var o in full) res.push(full[o]);
console.log(res.length==0?"":res.join(","));
如果不需要逗号,则替代
return (full["a"] || "") +
(full["b"] || "") +
(full["c"] || "") +
(full["d"] || "");
jQuery示例:
var full = {
"type": "book",
"title": "Title",
"container-title": "", // empty
"publisher": "Publisher",
"page": "Pages X to X",
"volume": "XXX"
},
res = [];
$.each(full, function(key, val) {
if ($.trim(val) != "") res.push(val);
});
console.log(res.length == 0 ? "" : res.join(","));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:0)
as full是一个数组,那么你可以使用$ .each并仅在当前元素没有坏数据时将结果添加到变量(undefined,null)