0
私は、次の要件を満たすために関数を記述しようとしています:通常のforループとfor ... forの違いは?
は、オブジェクトとキーを考えると、「getElementsThatEqual10AtProperty」は10に等しく与えられたキーに位置配列のすべての要素を含む配列を返します。 。
注:
- 配列が空の場合、それは空の配列を返す必要があります。
- 配列に要素が10個含まれていない場合は、空の配列 を返します。
- 指定されたキーのプロパティが配列でない場合は、配列 を返します。
- キーにプロパティがない場合は、空の配列が返されます。
例:
var obj = {
key: [1000, 10, 50, 10]
};
var output = getElementsThatEqual10AtProperty(obj, 'key');
console.log(output); // --> [10, 10]
アプローチ#1(キーでないプロパティがない場合、それは空の配列を返す必要があり、最終的なポイント*を失敗する。):
function getElementsThatEqual10AtProperty(obj, key) {
var output = [];
for (var i = 0; i < obj[key].length; i++) {
if (obj[key][i] === 10) {
output.push(obj[key][i]);
}
}
return output;
}
アプローチ#2すべてを渡す:
function getElementsThatEqual10AtProperty(obj, key) {
var output = [];
for (let i in obj[key]) {
if (obj[key][i] === 10) {
output.push(obj[key][i]);
}
}
return output;
}
私の理解から、ループと後続の条件付きプッシュは同じ論理を有する。なぜ、他のものよりもうまくいくのですか?
https://stackoverflow.com/questions/5263847/javascript-loops-for-in-vs-for – epascarello