问题描述
我无法将一维数组传递到方法中,因为有一个二维数组参数。我无法删除 2d 阵列参数,因为我的 2048 游戏板在该 2d 阵列板主题上运行。有解决方法吗?我希望 slideUp
在 temp 上工作并仍然保留我的二维数组参数 board。
public void slideUp(int[][] board) {
for (int column = 0; column < board[0].length; column++) {
int[] temp = getCol(board,column);
slideUp(temp);
for (int i = 0; i < board[0].length; i++) {
board[i][column] = temp[i];
}
}
}
错误代码:类型不兼容:int[]无法转换为int[][] slideUp(temp);
解决方法
作为一种解决方法,您可以创建一个接受 import React,{ useMemo,useState } from 'react';
import { useTable } from 'react-table'
function Table({ columns,data }) {
// neither stateArr nor simpleArr help reach what I would like to
const [stateArr,setStateArr] = useState([]);
let simpleArr = [...stateArr];
const handleOnButtonClick = () => {
console.log("Outside checked: simpleArr,stateArr");
console.log(simpleArr);
console.log(stateArr);
setStateArr([...stateArr,1]);
// in this case unnecessary,since,as I understand,simpleArr is rendered and (re)assigned above
// simpleArr = [...stateArr];
};
const {
getTableProps,getTableBodyProps,headerGroups,rows,prepareRow,} = useTable({
columns,data,},(hooks) => {
hooks.visibleColumns.push((columns) => {
return [
{
id: 'checkedInputs',Header: () => {
return (<div>
<input type="checkbox"
// working,not most elegant way to combine logging and computing boolean
checked={console.log("Inside checked: simpleArr,stateArr") || console.log(simpleArr)
|| console.log(stateArr) || simpleArr.length > 3 || stateArr.length > 3} />
</div>);
},Cell: () => {
return (<div>R</div>);
},...columns,];
});
}
);
return (
<div>
<table {...getTableProps()}>
<thead>
{headerGroups.map(headerGroup => (
<tr {...headerGroup.getHeaderGroupProps()}>
{headerGroup.headers.map(column => (
<th {...column.getHeaderProps()}>{column.render('Header')}</th>
))}
</tr>
))}
</thead>
<tbody {...getTableBodyProps()}>
{rows.map((row,i) => {
prepareRow(row)
return (
<tr {...row.getRowProps()}>
{row.cells.map(cell => {
return <td {...cell.getCellProps()}>{cell.render('Cell')}</td>
})}
</tr>
)
})}
</tbody>
</table>
<button type="button" onClick={handleOnButtonClick}>Click Me!</button>
</div>
)
}
function App() {
const columns = useMemo(
() => [
{
Header: 'Animal Type',accessor: 'animalType',{
Header: 'Number of legs',accessor: 'numberOfLegs',],[],);
const data = useMemo(
() => [
{
animalType: 'dog',numberOfLegs: 4,{
animalType: 'snake',numberOfLegs: 0,);
return (
<Table columns={columns} data={data} />
)
}
export default App;
的新方法,然后将 一维数组 表示为单行的 二维数组,然后调用旧方法,如下所示:
int[]
,
您可以通过创建另一个具有相同名称的方法重载该方法,但使用一维数组作为参数。
public void slideUp(int[] board) {
//your code here
}
你必须改变它来处理一维数组。
board[i][column]