私はこのオブジェクトを持っています:
const data = { theValues: [
{key1: "valueOne",
key2: "someValue"},
{key1: "valueTwo",
key2: "moreValue"}]};
私が以下を使用する場合:
data.theValues = data.theValues.filter(obj => obj.key1 != 'valueOne');
結果としてこれを取得します:
const data = { theValues: [
{key1: "valueTwo",
key2: "moreValue"}]};
わかりました、それは私も欲しかったものです。しかし、私がこのオブジェクトを持っている場合:
const data = { theValues: [
{key1: ["valueOne", "valueTwo"],
key2: "otherValue"},
{key1: ["valueThree","valueFour"],
key2: "noValue"}]};
そして私は同じものを使用します:
data.theValues = data.theValues.filter(obj => obj.key1 != 'valueOne');
何も起こりません。それはなぜですか?値が「valueOne」のオブジェクトを削除するにはどうすればよいですか?
の値key
は配列であるため、文字列と比較することはできません-obj.key1 != 'valueOne'
は常にtrue
です。配列に用語(valueOne
)が含まれていないことを確認してくださいArray.includes()
:
const data = {"theValues":[{"key1":["valueOne","valueTwo"],"key2":"otherValue"},{"key1":["valueThree","valueFour"],"key2":"noValue"}]};
const result = data.theValues.filter(obj => !obj.key1.includes('valueOne'));
console.log(result);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加