跳转至

数组处理

展开运算符#

展开数组,连接数组#

<script type='text/javascript'>
    let arr1=[1,3,5,7,9]
    let arr2=[2,4,6,8,10]
    console.log(...arr1)//展开第一个数组
    let arr3=[...arr1,...arr2]//深拷贝数据
</script>

不固定参数传递#

<script type='text/javascript'>
    function sum(...numbers){
        console.log("查看参数"numbers)
        return numbers.reduce((pre,cur)=>{
            return pre+cur  
        })      
    }
    sum(1,2,3,4)
</script>

字面量展开对象#

let test={name:"kobe",age:12}
let test2={...test}

数组快捷操作#

归约reduce#

    numbers.reduce((pre,cur)=>{
        return pre+cur  
    })      
<script type='text/label'>
    function sum(...numbers){
        console.log("查看参数"numbers)
        return numbers.reduce((pre,cur)=>{
            return pre+cur  
        })      
    }
    sum(1,2,3,4)
</script>

映射`map#

React中,因为jsx只能写有返回值的表达式,所以不能用条件分支语句和循环语句,所以用map的方式,返回加工之后带上html标签的vdom

<script type='text/label'>
function App() {
  const [list, setList] = useState([1,2,3,4,5,6,7])
  return (
      <ul>
        {list.map((item) => (
          <li>
             {item}
          </li>
        ))}
      </ul>
    </div>
  )
}
</script>

查找find#

通过对象列表的中的一个对象值,查出另一个对象的值

lef foo=[
    {name:'kobe',
     key:1
    },
    {name:'james',
     key:2
    }
]

function findNameBykey(key){
     return foo.find(item=>{    item.key=key}).name
}

筛选fliter#


toString();
join();
concat();
splice();
slice();
indexOf();
lastIndexOf();
forEach();
map();
filter();
reduce();
some();
every();
flat();
find();
findeIndex();
sort();