私のオブジェクト - アレイCoilArray
のオブジェクトに特定の値が含まれているかどうかを調べようとしています。オブジェクトの機能が定義されていませんjs
hasValue
を使用しています。このため
私は私が問題を抱えているあなたが機能でfilterArray
を見ることができるように、2つの値をフィルタリングし、濾過し、配列をお返しできるようにしたいです機能hasValue
。
私は取得していますエラーメッセージは言う:
objが未定義
obj
では、明らかに私は、関数に与えているオブジェクトであると考えられます。
なぜそれが定義されていませんか?
どうすれば定義できますか?
hasValue
自体はまあ、あなたがこれにすべてのことをダウントリミングすることができ
var CoilArray = [{
id: "First Coil",
systemId: ["System A", "System C"],
fieldStr: ["Str A", "Str B"],
}, {
id: "Second Coil",
systemId: "System B",
fieldStr: ["Str B", "Str C"],
}, {
id: "Third Coil",
systemId: "System C",
fieldStr: "Str C",
}, ]
function hasValue(obj, key, value) {
if (obj[key].indexOf(value) > -1) {
return true;
}
}
function filterArray(carray) {
var arr = new Array();
for (var i = 0; i <= carray.length; i++) {
if (hasValue(carray[i], "systemId", "System A") &&
hasValue(carray[i], "fieldStr", "Str B")) {
arr.push(carray[i].id);
console.log(arr[i].id);
}
}
return arr;
}
hasValue(CoilArray[0], "fieldStr", "Str A");
filterArray(CoilArray);
filter機能を使用するために(他の人とコードを共有する場合インスタンスには、助けを求める)、時間をインデントし、コードを読みやすく、一貫した方法でフォーマットしてください。 (他の人とコードを共有していなくても良いアイデアです)(私はコードを作成し、http://jsbeautifier.org [no affiliation]を通じて実行し、この機会に余分な空白行を削除しました。 [ああ、でもFranは元に戻しましたが、同様のことをしました]) –
'for(var i = 0; i <= carray.length; i ++){'あなたは配列の最後を1回過ぎています。 –
コードと質問を同時に書式設定していましたが、私はちょうどあなたの後に保存しなければなりません。申し訳ありません@ T.J.Crowder – Nope