我有一个数组:
self.helpers = [
{ name: ' abc ', helper: ' my helper text1 ' },
{ name: ' def ', helper: ' my helper text2 ' },
{ name: ' xyz ', helper: ' my helper text3 ' }
];
如果我有一个字符串var testdata = 'abc'
,我可以使用ko.utils.arrayFilter
来获取包含self.helpers
name
等于'abc'
的对象的json数组。< / p>
但如果我有一个字符串数组,我该如何过滤self.helpers
:testdata=[' abc ',' def ']
?
我应该得到如下结果:
[{ name: ' abc ', helper: ' my helper text1 ' },
{ name: ' def ', helper: ' my helper text2 ' }];
knockoutjs与sql中的IN
有什么相似之处吗? jQuery有in_array
,但在这种情况下如何使用它,而且:它是最好的方法吗?
答案 0 :(得分:0)
不需要特殊的Knockout(或jQuery)代码,这可以轻松使用vanilla Javascript完成。这是我的建议,使用indexOf
:
'drain'
var helpers = [
{ name: ' abc ', helper: ' my helper text1 ' },
{ name: ' def ', helper: ' my helper text2 ' },
{ name: ' xyz ', helper: ' my helper text3 ' }
];
var testdata = [' abc ',' def '];
var result = helpers.filter(function(h) {
return testdata.indexOf(h.name) >= 0;
});
// for demo:
document.getElementById("x").innerHTML = JSON.stringify(result, null, 2);
顺便说一下,jQuery's inArray
function在其实施中使用相同的东西,目前归结为:
<pre id="x"></pre>