var intersect = function(nums1, nums2) {
let res1 = {};
for(let i=0;i<nums1.length;i++){
if(res1[nums1[i]]) {
res1[nums1[i]] = res1[nums1[i]]+1
} else {
res1[nums1[i]] = 1
}
}
let res2 = {};
for(let i=0;i<nums2.length;i++){
if(res2[nums2[i]]) {
res2[nums2[i]] = res2[nums2[i]]+1
} else {
res2[nums2[i]] = 1
}
}
let resArray=[];
for(let num of Object.keys(res1)) {
if(res2[num]) {
let time = Math.min(res1[num],res2[num]);
for(let i=0;i<time;i++) {
resArray.push(Number(num))
}
}
}
return resArray;
};
React Higher Order Components in depth
React 高阶组件:一个包含另一个组件的 React 组件。
- 一种是通过代理。
function ppHOC(WrappedComponent) {
return class PP extends React.Component {
render() {
return <WrappedComponent {...this.props}/>
}
}
}
通过代理的方式可以实现
- 修改 props
- 通过 Refs 获取对象本身实例
- 抽象 state
- 用别的组件包含 WrappedComponent
- 一种是通过继承。
function iiHOC(WrappedComponent) {
return class Enhancer extends WrappedComponent {
render() {
return super.render()
}
}
}
通过继承的方式可以实现
- Render Highjacking
- 修改state