キーが特定の文字列を含むことがわかっている場合、LoDash _.filter
を使用して値を返すことはできますか?つまり、次のデータがあるとします:部分文字列のみを使用してLodashを使用してキーを取得
Mydata{
"banana" : "1"
}
「ana」を含む値を返したいとしますか?私がLoDashで見つけたものは、主に要素の値を検索することですが、キーは検索しません。
キーが特定の文字列を含むことがわかっている場合、LoDash _.filter
を使用して値を返すことはできますか?つまり、次のデータがあるとします:部分文字列のみを使用してLodashを使用してキーを取得
Mydata{
"banana" : "1"
}
「ana」を含む値を返したいとしますか?私がLoDashで見つけたものは、主に要素の値を検索することですが、キーは検索しません。
あなたにもオブジェクトと Lodashの_.filter()
作品、キーが基準に適合した値の配列を取得したい場合。コールバックに渡された2番目のパラメータがキーです。
var data = {
"banana": 1,
'lorem': 2,
'123ana': 3
}
var result = _.filter(data, function(v, k) {
return _.includes(k, 'ana');
});
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
あなたは性質が一定の基準に準拠したオブジェクトを、必要な場合は、同様の方法で_.pickBy()
を使用することができます。
var data = {
"banana": 1,
'lorem': 2,
'123ana': 3
}
var result = _.pickBy(data, function(v, k) {
return _.includes(k, 'ana');
});
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
ネイティブArray#reduce
を使用して目的の結果に達し、これらのキーのみを含むオブジェクトを返します。このオブジェクトには、string
が含まれます。あなたが最初の値を取得するには、文字列の特定の部分でキーを取得するためにfilter()
を使用し、map()
でき
const obj = {
banana: 'foo',
hello: 'bar',
foo: 'fzz',
ana: 'xoo',
}
const check = (obj, str) => {
return Object.keys(obj).reduce((s, a) => {
if (a.includes(str)) {
s[a] = obj[a];
}
return s;
}, {});
}
console.log(check(obj, 'ana'));
。
var data = {
"banana": 1,
'lorem': 2,
'123ana': 3
}
var result = _.chain(data)
.keys()
.filter(e => _.includes(e, 'ana'))
.map(e => data[e])
.value()
console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.js"></script>
それはよりエレガントなソリューションですので、私は答えとしてあなたの答えを設定します – WJM