12345678910111213141516171819202122232425262728293031323334353637383940 |
- //! filter方法:过滤器
- // 对原数组进行拷贝,同时保留满足回调函数中条件的那些值。
- // 因此,filter方法不对原数组操作,是无害的
- const words = [
- 'spray',
- 'limit',
- 'elite',
- 'exuberant',
- 'destruction',
- 'present',
- ];
- const result = words.filter((word) => word.length > 6);
- console.log(result);
- // expected output: Array ["exuberant", "destruction", "present"]
- console.log(words);
- // filter示例
- const fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'];
- const iptEle = document.getElementById('fruit');
- const dataListEle = document.getElementById('fruit-choose');
- // 当text-input的值改变时 会触发input事件
- iptEle.addEventListener('input', function () {
- let iptVal = iptEle.value; // 获取当前输入框的值
- let chooseFruits = fruits.filter((f) => f.includes(iptVal));
- // 每一次添加option的时候 记得清空上次结果
- dataListEle.innerHTML = '';
- chooseFruits.forEach((f) => {
- // 然后再创建新的option标签,并添加给datalist
- // 下面代码有性能问题?回流 与 重绘
- // 尽量避免在循环中动态的一个一个的向页面中添加元素,因为会频繁引起回流,引起性能问题
- let optionEle = document.createElement('option');
- optionEle.value = f;
- dataListEle.append(optionEle);
- });
- });
|