我需要找到两个整数之间的整数重的数量A和B,其中A <= B在任何时候.
只要数字的平均值大于,整数就被认为是重的
7.例如:
9878被认为是沉重的,因为(9 + 8 + 7 + 8)/4 = 8,虽然1111不是,因为(1 + 1 + 1 + 1)/4 = 1.
我有下面的解决方案,但它绝对可怕,并且在运行大量输入时会超时.我该怎么做才能提高效率?
int countHeavy(int A, int B) {
int countHeavy = 0;
while(A <= B){
if(averageOfDigits(A) > 7){
countHeavy++;
}
A++;
}
return countHeavy;
}
float averageOfDigits(int a) {
float result = 0;
int count = 0;
while (a > 0) {
result += …Run Code Online (Sandbox Code Playgroud) java algorithm performance complexity-theory time-complexity
我有一个类型为 的输入字段number。但是,如果我尝试输入 0,它就会忽略它。这是怎么回事?
我的代码大致如下:
// render part of the component
return {
<div>
<input
type='number'
step='1'
min='0'
max='20'
value={this.state.myTargetsValue}
// @ts-ignore
onFocus={(evt) => evt.target.select()} // This selects all text on the first click
onChange={(evt) => this.handleChange(key, 'myTarget', evt.target.value)}
className='form-control'
/>
</div>
}
Run Code Online (Sandbox Code Playgroud)
注意:handleChange 没有什么区别,为了测试的目的,我删除了其中的所有代码。
这是一个非常基本的问题,但我找不到更好的方法来做到这一点,而且我感觉我的处理方式是错误的。
基本上,我的表列中有两个值,我想将它们更新为两个不同的值。
假设我有一个name值为 的列My Name,我想将其更改为Updated My Name,但是在同一列上,如果我也有该值My Name222,我想将其更新为Updated My Name222。目前我有两个更新 SQL 调用,如下所示:
UPDATE myTable t
SET "name"='My Name' WHERE "name"= 'Updated My Name';
UPDATE myTable t
SET "name"='My Name222' WHERE "name"= 'Updated My Name222';
Run Code Online (Sandbox Code Playgroud)
正如我之前提到的,这确实有效,但我觉得有更好的方法可以连续执行,而不必调用UPDATE myTable t两次。那会怎样呢?
我有一个数组中的一长串项目。这些需要在一个组件中呈现,这应该很好而且很花哨。但是,我需要在每 3 个项目中由另一个组件包装这些。
所以,如果我只是渲染项目,它看起来像这样:
return (
<div>
items.map((x, index) => {
<span key={index}>{x}</span>
})
</div>
)
Run Code Online (Sandbox Code Playgroud)
但基本上,我希望每三个项目都被包裹在一个具有特殊类的 div 中,所以是这样的:
return (
<div>
<div className='group-of-3'>
<span>Item 1</span>
<span>Item 2</span>
<span>Item 3</span>
</div>
<div className='group-of-3'>
<span>Item 4</span>
<span>Item 5</span>
<span>Item 6</span>
</div>
.
.
.
</div>
)
Run Code Online (Sandbox Code Playgroud)
这样做的理想方法是什么?请记住,项目的数量确实会发生变化,因此手动进行操作是不可能的。
假设我有以下枚举:
CREATE TYPE "my_enum" AS ENUM('value1', 'value2', 'value3');
Run Code Online (Sandbox Code Playgroud)
我想要删除value3。从我在文档和以前的线程中看到的内容来看,我实际上必须删除整个枚举并使用我想要的值重新创建它。像这样的东西:
DROP TYPE IF EXISTS "my_enum";
CREATE TYPE "my_enum" AS ENUM('value1', 'value2');
Run Code Online (Sandbox Code Playgroud)
问题是我有其他依赖于这个枚举的表,所以它不允许我这样做。我收到以下消息(理所当然):
错误:无法删除类型“my_enum”,因为其他对象依赖于它
所以我的问题是如何在不删除整个内容的情况下删除一个枚举值?我知道我可以通过更改以下内容轻松添加值:
ALTER TYPE "my_enum" ADD VALUE 'value4';
Run Code Online (Sandbox Code Playgroud)
所以我认为我可以在删除时做一些等效的事情。
谢谢!
最近有消息称 React 很快就会被弃用componentWillReceiveProps,取而代之的是新的静态函数getDerivedStateFromProps。在这里查看更多内容
getDerivedStateFromProps我目前正在将我的应用程序迁移到这个新的 API,但由于我正在将重构库用于更高阶的组件,所以我遇到了问题。componentWillReceive我们通过库的生命周期对象来使用props。
所以在转向新的 API 之前,我有以下内容:
export function someHoC () {
return compose(
lifecycle({
componentWillReceiveProps (nextProps) {
const { fetch } = nextProps
if (shouldFetch(this.props, nextProps)) {
fetch()
}
}
})
)
}
Run Code Online (Sandbox Code Playgroud)
现在已更改为以下内容:
export function someHoC () {
return compose(
lifecycle({
getDerivedStateFromProps (nextProps) {
const { fetch } = nextProps
if (shouldFetch(this.props, nextProps)) {
fetch()
}
}
})
)
}
Run Code Online (Sandbox Code Playgroud)
但是,getDerivedStateFromProps需要是静态的,所以我收到了有关此问题的警告,并且不知道如何处理它。
warning.js?7f205b4:33 警告:lifecycle(MyComponent):getDerivedStateFromProps() 被定义为实例方法,将被忽略。相反,将其声明为静态方法。
我该怎么做才能将它作为静态生命周期方法传递到我的组件中?
我需要对需要非常具体的正文格式的服务器进行 PATCH。像这样的东西:
{
file: MY_FILE_OBJECT
name: 'Name',
nestedObject: {
nestednestedObject1: {
name: 'Some other name'
},
nestednestedObject2: {
name: 'Yet another name'
},
}
}
Run Code Online (Sandbox Code Playgroud)
因为我需要能够传入一个文件,所以我必须把它变成一个FormData对象。因此,对于主要字段,形成请求的正文很容易
const data = new FormData()
data.append('file', file, file.name)
data.append('name', 'Name')
Run Code Online (Sandbox Code Playgroud)
但是,我该如何做嵌套translation对象?我在另一个帖子中看到了我做一个 blob 的建议。应该是这样的:
const fullPatchObject = {
nestedObject: {
nestednestedObject1: { name: 'Some other name' }
nestednestedObject2: { name: 'Yet another name' }
}
}
const blob = new Blob([JSON.stringify(fullPatchObject)], { type: 'application/json' })
data.append('nestedObject', blob)
Run Code Online (Sandbox Code Playgroud)
然而这不起作用。我在服务器中使用 multer 来处理文件,我得到以下错误对象:
name: …Run Code Online (Sandbox Code Playgroud) 我已经花了好几个小时试图按照各种教程来动态地将项目添加到滚动视图中,但似乎没有任何工作......
想法只是将字符串添加到Checkbox旁边的TextView中,这是在一个单独的xml文件中完成的,我只是希望列表随着我不断添加它们而增长.
现在,只添加了一个String(最后一个替换了前一个),并且在尝试更改它的任何尝试中,我的应用程序停止工作.这是代码:
TableLayout addPlayersTableLayout;
TableRow tableRow1;
ScrollView addPlayersScrollView;
String[] players = new String[]{ "Blah", "Whatever", "Test", "Nipah!"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPlayersTableLayout = (TableLayout)findViewById(R.id.TableLayout1);
tableRow1 =(TableRow)findViewById(R.id.tableRow1);
addPlayersScrollView = (ScrollView)findViewById(R.id.playersScrollView);
insertPlayerInScrollView();
}
Run Code Online (Sandbox Code Playgroud)
以下是应该添加项目的函数的实现:(add_player_row.xml是文本视图和应该是项目的复选框的文件)
private void insertPlayerInScrollView() {
LayoutInflater inflator = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View newPlayerRow = inflator.inflate(R.layout.add_player_row, null);
TextView newPlayerTextView = (TextView) newPlayerRow.findViewById(R.id.addPlayerTextView);
CheckBox playerCheckBox = (CheckBox)findViewById(R.id.playerCheckBox);
newPlayerTextView.setText(players[1]);
addPlayersTableLayout.addView(newPlayerRow,0);
}
Run Code Online (Sandbox Code Playgroud)
最后一行代码是它工作的唯一方式,即使在大多数论坛和教程中,人们会指示我使用addPlayersScrollView,但如果我这样做,应用程序崩溃.所以...任何想法?非常感谢你!
我需要访问window我的反应组件中的对象以从查询字符串中获取一些东西。这是我的组件的样子:
export function MyComponent() {
return (
<div>
Display the qs: {(window && window.location.search) || 'nothing'}
</div>
)
}
Run Code Online (Sandbox Code Playgroud)
如果我运行应用程序然后访问我需要访问窗口的页面,这一切都很好,但是如果我在需要窗口的页面上启动应用程序,我会收到以下错误:
参考错误:窗口未定义
到目前为止,我看到的大多数解决方案都使用componentWillMount来解决问题。所以我的问题是,如何在功能组件中解决这个问题?或者在不使用生命周期方法的情况下这样做的最佳方法是什么?
不确定这是否相关,但我也在使用 NextJS。
我有一个 v-cards 列表,所有这些都将toprop 设置为某个值。当我单击它时,默认行为是具有单击效果,这是我不想要的。我该如何删除它?
代码看起来像这样:
<v-col v-for="item in myItems" :key="`${item.id}`" cols="12">
<v-card :key="item.id" class="pl-4 pr-4" :to="item.href">
<div class="some-unrelated-class">
<p>{{item.name}}</p>
</div>
</v-card>
</v-col>
Run Code Online (Sandbox Code Playgroud)
以下是我正在谈论的一些图像:
当我单击其中一项时,会出现以下内容:
如果我松开屏幕上其他地方的点击,这样我就不会访问该链接,它会保持如下所示:
我希望消除这两种效果,并使该物品保持白色。
我尝试过尝试一些样式,但无济于事,而且似乎找不到颜色变化的来源。
// Example (but doesnt work)
.v-card--link:active {
background-color: white !important;
}
Run Code Online (Sandbox Code Playgroud)
无论如何,当 v-card 组件用作链接时,如何删除这些额外的装饰?
javascript ×5
reactjs ×4
java ×2
postgresql ×2
algorithm ×1
android ×1
arrays ×1
css ×1
enums ×1
form-data ×1
input ×1
multer ×1
next.js ×1
performance ×1
recompose ×1
scrollview ×1
sql ×1
sql-update ×1
vue.js ×1
vuetify.js ×1
xml ×1