Javascript 向函数内的对象添加项

Javascript 向函数内的对象添加项,javascript,Javascript,我是javascript新手,一开始就一直在阅读有说服力的javascript。我正在尝试创建一个函数,用于存储物品条目、价格以及是否正在销售。我似乎无法复制雄辩的Javascript作者所做的一些事情。我想将附加参数添加到相应的属性中,但似乎无法添加到对象属性中。我不知道我做错了什么。我试着遵循作者的代码,但我没有这样做 var itemList = []; function addEntry(item){ var entry = {item: item, price: [], sale

我是javascript新手,一开始就一直在阅读有说服力的javascript。我正在尝试创建一个函数,用于存储物品条目、价格以及是否正在销售。我似乎无法复制雄辩的Javascript作者所做的一些事情。我想将附加参数添加到相应的属性中,但似乎无法添加到对象属性中。我不知道我做错了什么。我试着遵循作者的代码,但我没有这样做

var itemList = [];

function addEntry(item){
  var entry = {item: item, price: [], sale: []};
  for(var i = 0; i < arguments.list; i++){
    if(typeof arguments[i] == boolean)
      entry.sale.push(arguments[i]);
    else
      entry.price.push(arguments[i]);

  };
  console.log(entry);
}
addEntry('couch', '$500', true)
var itemList=[];
功能补遗(项目){
var条目={项目:项目,价格:[],销售:[]};
对于(var i=0;i
我还尝试在每次循环迭代时修改下面的代码以创建一个新属性,但我也不能这样做。我完全知道我很可能遗漏了一些关键代码或犯了一个简单的错误,但我对此视而不见。请帮帮我。即使代码似乎对你有用,也要让我知道

var itemList = [];
function addEntry(item){
  var entry = {item: item};
  for(var i = 0; i < arguments.list; i++){
    if(typeof arguments[i] == boolean)
      entry.sale = arguments[i];
    else
      entry.price arguments[i];

  };
  console.log(entry);
}
addEntry('couch', '$500', true)
var itemList=[];
功能补遗(项目){
var条目={item:item};
对于(var i=0;i
  • 在参数上没有名为
    list
    的方法/属性。使用
    .length
  • typeof arguments[i]
    返回一个字符串,使用
    =='boolean'
  • 1..n
    运行
    for
    循环,因为
    0
    参数已指定为

  • 您的代码中有一些打字错误。请参见更新代码中的以下注释:

    var itemList = [];
    function addEntry(item){
      var entry = {item: item};
      for(var i = 0; i < arguments.length; i++){ // Use argument.length to specify upper bound of the loop
        if(typeof arguments[i] == 'boolean') // typeof returns a string, so use 'boolean'
          entry.sale = arguments[i];
        else
          entry.price = arguments[i];
      };
      console.log(entry);
      itemList.push(entry); // Have you forgotten to add it to the list?
    }
    addEntry('couch', '$500', true)
    
    var itemList=[];
    功能补遗(项目){
    var条目={item:item};
    对于(var i=0;i
    必须循环遍历参数列表,如下所示。此外,如果您将项目设置为数组,则可以容纳多个项目,就像多个价目表一样。所以你可以打电话

    addEntry('couch', '$100', true);
    addEntry('couch', '$100', true, 'chair', '$50', false); 
    
    
    function addEntry(){
        var entry = {item: [], price: [], sale: []};
        for(var i = 0; i < arguments.length; i++){
            if(typeof arguments[i] == 'boolean')
                entry.sale.push(arguments[i]);
            else if (!isNaN(arguments[i].replace('$','')))
            {     
                entry.price.push(arguments[i]);
            }
            else
                entry.item.push(arguments[i]);
      }
      console.log(entry);
    }
    
    addEntry('coach','$100',true);
    附录(“沙发”、“100美元”、“真”、“椅子”、“50美元”、“假”);
    函数加法器(){
    var分录={项目:[],价格:[],销售:[]};
    for(var i=0;i
    @Drakes
    addEntry
    在函数中接受变量参数。