Javascript - 使用传递的参数更新数组

时间:2014-06-04 13:24:34

标签: javascript arrays parameters

我有一堆输入元素,点击时调用一个函数。它们传递了一堆参数,其中包含有关所点击内容的信息。

像这样:

onClick="updateCart('product_id', 'product_name', 'product_price');"

现在我想创建一个函数,它接受这些参数并将它们放在一个数组中。

var updateCart = function (product_type, product_id, cost_model_id, product_name, subscription_campaign, startup_campaign) {
    this.product_row = [];
};

我该怎么做?

2 个答案:

答案 0 :(得分:1)

var updateCart = function (product_type, product_id, cost_model_id, product_name, subscription_campaign, startup_campaign) {
    this.product_row = [ product_type, product_id, cost_model_id, product_name, subscription_campaign, startup_campaign ];
};

这不是你想要的吗?

检索您刚刚使用的信息时:

this.product_row[0]; //returns product_type

但如果您需要更具可读性的内容,请改用对象:

var updateCart = function (product_type, product_id, cost_model_id, product_name, subscription_campaign, startup_campaign) {
    this.product_row = { "productType": product_type, "productID": product_id, "costModelID": cost_model_id, "productName": product_name, "subscriptionCampaign": subscription_campaign, "startupCampaign": startup_campaign };
};

答案 1 :(得分:1)

如上所述,最简单的方法是使用arguments变量,它将包含所有以类数组格式传递的参数。您应该将其转换为数组,如下所示:

var updateCart = function() {
    this.product_row = Array.prototype.slice.call(arguments);
    // another way: this.product_row = [].slice.call(arguments);
};