我收到错误消息:"无法读取属性'推送'未定义"

时间:2015-02-04 11:56:35

标签: javascript arrays object

我写了一个函数,它接受两个数组作为参数。第一个是带有对象的数组,第二个是带整数的数组:

var employees = [{name:"Ash Ketsup"}, {name:"Fronto"}, {name:"Captain"}];
var employeesAge = [25,30,50];


function addNewProp(arr1,arr2){

if (arr1 instanceof Array && arr2 instanceof Array){

    var data = [];

    for(var i=0; i<arr1.length; i++){

           data[i].push({name:arr1[i].name ,age:arr2[i]});

            }

        };
        return data;
            alert(data);

        }; 

    var check = addNewProp(employees,employeesAge);
    alert(check);

我想要的只是创建一个对象数组,它们将具有值name和age。但我得到了无法阅读的财产&#39; push&#39;未定义的错误消息。我无法弄清楚我做错了什么。 你能帮帮我吗?

2 个答案:

答案 0 :(得分:3)

使用此:

data.push({name:arr1[i].name ,age:arr2[i]});

data是一个数组,它有一个名为push的函数。虽然data[i]是索引为data的位置中名为i的数组的元素。

答案 1 :(得分:1)

var data = [];

这意味着数据的长度为0,因此您无法像data [i]那样访问它。您应该使用以下语法:

data.push({ 
    name : arr1[i].name,
    age : arr2[i]
});