2017-05-07 23 views
0

UPDATE角/ 2:过滤与多个定义的属性

由于developer003 suggested JSON响应,我这样做:

enter image description here

它的工作原理,但不是在所有。如果我添加其他属性如c.details.author(string [])或c.details.index(number),它不起作用,并且该函数不会返回任何内容(错误)。

这里我JSON数据库的摘录:

[ 
    { 
    "index": 1, 
    "name": "ad dolor ipsum quis", 
    "details": { 
     "author": ["Wallace Stephens", "Steve Ballmer"], 
     "game": { 
     "short": "tdp", 
     "name": "Thief: The Dark Project" 
     }, 
     "newdark": { 
     "required": true, 
     "version": "1.20" 
     }, 
     "firstreleasedate": "2007/04/27", 
     "lastupdatedate": "2017/01/28" 
    } 
    } 
] 

这样我就可以找另一个细节性能比字符串。任何想法?


ORIGINAL POST

enter image description here

我创建了一个函数,当我把它作为(KEYUP)情况下,当I型中的输入滤波器的东西的HTML数据表。

return c.name.toLowerCase().indexOf(input.target.value.toLowerCase()) != -1;

我希望能够过滤,不仅,也受到details.authordetails.game.namedetails.firstrelease ...等。

我如何更改c.name以应用这些属性?我是否需要创建一个循环?我应该使用.map()

+1

嘿,我的答案是否适合你? – developer033

+0

@ developer033完全没有,请看我更新的主要文章:) – Jonathan

回答

2

现在我能想到的方法2:

1:

º创建function解析(toLowerCase())属性值和处理,如果它包含值或不:

containsVal(property, value) { 
    return property.toLowerCase().indexOf(value) !== -1; 
} 

filterFunc(c) { 
    return this.containsVal(c.name, VALUE_TO_SEARCH) || 
    c.details && (
     this.containsVal(c.details.author, VALUE_TO_SEARCH) || 
     this.containsVal(c.details.firstrelease, VALUE_TO_SEARCH) || 
     (c.details.game && this.containsVal(c.details.game.name, VALUE_TO_SEARCH)) 
    ); 
} 

第2张:

º映射唯一需要的属性并对其进行过滤。

arr.map(item => { 
    return { 
    name: item.name, 
    author_details: item.details && item.details.author, 
    firstrelease_details: item.details && item.details.firstrelease, 
    game_name: item.details && item.details.game && item.details.game.name 
    }; 
}).filter(item => { 
    return Object.keys(item).some(key => { 
    const value = item[key]; 

    return value && value.toLowerCase().indexOf(VALUE_TO_SEARCH) !== -1; 
    }); 
}); 
+0

@ developer003它工作,但没有,请参阅我的主要更新后的帖子。 – Jonathan

+0

你可以在你的文章中包含模板吗?或者也许是一个沉闷的人.. – developer033