为什么此代码不起作用?不断返回一个空数组?

假定返回一个数组,其中包含一个包含源属性的collection中的对象。

function whatIsInAName(collection, source) {
    let arr = [];
    for (let i = 0; i < collection.length; i++) {
        if (collection[i].hasOwnProperty(source)) {
            arr.push(collection[i]);
        }
    }
    return arr;
 };

附言只想知道,为什么它不起作用。会自己找到解决方案的。提前致谢。