【问题标题】:How do I rewrite an instantiation to a function?如何将实例化重写为函数?
【发布时间】:2020-07-16 06:42:29
【问题描述】:

我想要一个名为 getSelectedValues 的函数,它从选项数组中检索数据,而不是一个名为 SelectedValues 的变量(这是我现在拥有的方式)。变量 Selected Values 当前获取选项数组中为 true 的值并将它们分配给自身。 我只是想让它成为一个函数。 (我想像 getSelectedValues 的东西)我如何实现这一点?

var options = [
{
name: "Red Pepper",
"selected": false,
value: "5.99"   
},
  {
name: "Garlic",
"selected": true,
value: "5.99"   
},
      {
name: "Tomatoes",
"selected": true,
value: "5.99"   
}, 
]


  var SelectedValues = options.filter(function (option) {
  return (option.selected);
  });
 console.log(SelectedValues)

【问题讨论】:

标签: javascript arrays function instantiation


【解决方案1】:

这样的?

function getSelectedValues(options) {
  const size = Object.keys(options).length;
  for (var i = 0; i < size; i = i + 1) {
    const isSelected = options[i]["selected"];
    if (isSelected) {
      alert(options[i].name);
    }
  }
}

Jsfiddle 在这里:https://jsfiddle.net/z3nrh8Ly/50/

【讨论】:

  • Object.keys 是我要找的!谢谢
【解决方案2】:

仅供参考,阅读全文:

Declaring functions in JavaScript

function filterOptions(options) {
  return options.filter(i => i.selected);
}

function filterOptions(options) {
  return options.filter((i) => i.selected);
}
var options = [
  {
    name: "Red Pepper",
    selected: false,
    value: "5.99",
  },
  {
    name: "Garlic",
    selected: true,
    value: "5.99",
  },
  {
    name: "Tomatoes",
    selected: true,
    value: "5.99",
  },
];

var selectedValues = filterOptions(options);
console.log(selectedValues);
.as-console {
  min-height: 100% !important;
}

.as-console-row {
  color: blue !important;
}

【讨论】:

    【解决方案3】:
    function getSelectedValues() {
       return options.filter(t => t.selected);
    
    }
    

    另一种方式:

    getSelectedValues = () => options.filter(t => t.selected);
    

    【讨论】:

    • 如果我不只是想返回选定的项目,但我想写一个条件语句,说明如果选择了 3 个或更多,而不是价格为 5。我会怎么写那?类似函数getSelectedValues() { return options.filter(t =&gt; t.selected) if(getSelectedValues length is 3 .map(option =&gt; ({ name: option.name, value: 5 })); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多