返回具有相同属性的数组对象

时间:2019-02-09 18:26:57

标签: javascript

我必须在面试时这样做,想知道您是否可以为解决方案提供帮助?我尝试搜索答案,但找不到任何有效的方法。

Question in this link

1 个答案:

答案 0 :(得分:0)

根据给定的文本,您可能需要这样做,在这里您需要一个用于数组的任何项目的类,并使用value方法来实现原型。

可以在类的所有实例上访问它,并且始终指向同一原型引用。

function solution(A) {
    function X(v) {                                     // instanciable function with new
        this._ = v;                                     // save the value
    }
    X.prototype.value = function () { return this._; }; // create accessor

    return A.map(v => new X(v));                        // map new instances
}

var A = [3, 2, 97, 5, 52],
    T = solution(A),
    i = 3, j = 1;

console.log(T[i].value() === A[i]);
console.log(T[j].value() === A[j]);
console.log(T[i].value === T[j].value);
console.log(!T[i].hasOwnProperty('value'));
console.log(!T[j].hasOwnProperty('value'));