我有以下功能
function getItems(source, debpth, parent) {
var children = source; //source gets all my array data
console.log(children);
var nestedlist = $('<div></div>');
if (children && children.length > 0) //in here its passing all the items.what i want to do is only pass a specific array
{
getLinks(nestedlist, children, ++debpth, parent); //gets all my data and passes it to css styling
}
return nestedlist.children().length > 0 ? nestedlist : null;
}
如何传递只有TypeCode为&#39; HOR&#39;?
的数组这是我source
{
__type: "TreeNode:#Entities",
TypeCode: "HOR",
TypeID: "1",
TypeName: "Home",
Name: "test",
…
}
它有多个阵列但我只想要上面的那个。
答案 0 :(得分:1)
您可以在函数开头使用jQuery的grep
。
var children = $.grep(source, function(c) {
return c.TypeCode == "HOR";
});
children
将是一个数组,其元素只是source
的对象,TypeCode
设置为HOR
。
原始数组(source
)将不受影响。
请注意,上述代码假定source
的每个元素都是一个名为TypeCode
的属性。
答案 1 :(得分:1)
您可以使用以下函数执行此操作,该函数使用$ .map进行转换和进一步条件检查
function getItems(source, debpth, parent) {
var children = $.map(source, function(value, index) {
return [value];
});//source gets all my array data
var nestedlist = $('<div></div>');
if (children && children.length > 0) //in here its passing all the items.what i want to do is only pass a specific array
{
for(item in children)
{
if(children[item] == "HOR")
{
//console.log("send"+source);
getLinks(nestedlist, source , ++debpth, parent); //gets all my data and passes it to css styling
}
}
}
return nestedlist.children().length > 0 ? nestedlist : null;
}
答案 2 :(得分:0)
看一下我为你创建的这个例子,
var myarr = [{a:'1'},{a:'2'},{a:'2'},{a:'3'}];
var finalArr = myarr.filter(function(k,v){
if(k.a==2){return true;}
else{return false;}});
console.log(finalArr);// this will print an array made up of a==2
所以你可以用同样的方式改变你的来源。
var newSource = source.filter(function(k,v){
if(k.TypeCode =='HOR'){
return true;
} else { return false;}
});
现在你的newSource数组只有TypeCode为&#34; HOR&#34;的对象。
答案 3 :(得分:0)
我不确定这是否适合您。根据我的理解,您可以编写一个函数来返回具有Typecode =“HOR”的数组。您可以在传递给下面的函数后将此源发送到函数(需要改进)
function filterJsonArray(source) {
$.each(source, function(key, val) {
if(val.TypeCode === "HOR") {
return value;
}
});
}