在下面的方法中,
self.search = (obj, search) => {
...
第二个参数search
是一个搜索字符串数组。第一个是对象。
如果对象包含任何搜索字符串,该算法将在filter
方法中使用,该方法返回true
。
self.search = (obj, search) => {
return Object.keys(obj).some(k =>
typeof obj[k] === 'object'
? self.search(obj[k], search)
: search.some(v => String(obj[k]).includes(v))
)
}
因此,例如,给定以下对象:
{
name: 'Peter',
phone: {
primary: 5556667777,
mobile: 1112223333
}
}
对于self.search
参数的以下值, search
将返回true:
['Pet']
['Pet', '111']
['Pet', 'asdf']
问题
如果对象包含self.search
数组的 元素,那么search
如何才能更改为true?
基本上,['Pet', 'asdf']
应该返回false
。
更新
当搜索字符串数组跨越各个级别时,用some
替换every
不起作用。
// `['Pet']` correctly returns true
// `['Pet', '111']` returns false when it should return true
// `['Pet', 'asdf']` correctly returns false
self.search = (obj, search) => {
return Object.keys(obj).some(k =>
typeof obj[k] === 'object'
? self.search(obj[k], search)
: search.every(v => String(obj[k]).toLowerCase().includes(v))
)
}
答案 0 :(得分:3)
您可以对阵列的每个项目使用单个搜索功能和元搜索。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initialize the webView here
// load the url
final Intent intent = getIntent();
final String url = intent.getStringExtra("urls");
webView.loadUrl(url);
}