我试图匹配一个以 (Mr.|Mrs.|Ms.|Dr.|Er.) 开头的字符串,后跟任何字符串 [a-zA-Z] 但不知何故它也将它传递给“Er.Dr.” ”。
让我知道我在这里的正则表达式做错了什么。
var input = [
{str: "Mr.X", expectedValue: true},
{str: "Mrs.Y", expectedValue: true},
{str: "Dr#Joseph", expectedValue: false},
{str: "Er .Abc", expectedValue: false},
{str: "Er.Dr.", expectedValue: false},
{str: "Er.Abc", expectedValue: true}
];
var re = /^(Mr|Mrs|Ms|Dr|Er)\.+[A-Za-z]/;
input.forEach(x => {
var answer;
var matchStr;
answer = re.test(x.str);
matchStr = x.expectedValue === answer ? "MATCH" : "NO MATCH";
console.log("------------------------------------------------------------------------------");
console.log(`"${x.str}" | Expected Output: ${x.expectedValue} | My Output: ${answer} | ${matchStr}`);
console.log("------------------------------------------------------------------------------");
})
Run Code Online (Sandbox Code Playgroud)
输出 -
我正在尝试使用new Array()
和填充索引 + 1创建一个数组,但不知何故,尽管数组创建成功但值未正确填充。
代码 -
var aa = (new Array(4)).map((x, index) => {
return index + 1;
});
console.log(aa);
Run Code Online (Sandbox Code Playgroud)
输出 - [undefined, undefined, undefined, undefined]
预期的 - [1, 2, 3, 4]
让我知道我在这里做错了什么。
以下是给我错误的反应代码 -
错误 -
元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件),但得到:未定义。您可能忘记从定义它的文件中导出组件,或者您可能混淆了默认导入和命名导入。
检查 的渲染方法
Star
。
代码 -
应用程序.js
import "./styles.css";
import { FaStar } from 'react-icons';
function Star() {
return (
<FaStar />
)
}
export default function App() {
return (
<div className="App">
<h1>Star Rating App</h1>
<Star />
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
我也尝试编写<Star />
类似的组件 -
const Star = () => {
return (
<FaStar />
)
}
Run Code Online (Sandbox Code Playgroud)
仍然给出相同的错误。不过,如果我将<Star />
组件移动到单独的文件并将其导入App.js
文件中,它就可以工作。
我有兴趣知道这背后的原因。让我谈谈它的概念。
编辑 - CodeSandbox - https://codesandbox.io/s/reverent-hawking-7br7g?file=/src/App.js
以下是我的阵列 -
const products = [{
id: "1",
quantity: 3
}, {
id: "2",
quantity: 3
}]
console.log(products.reduce((acc, product) => acc.quantity + product.quantity)) // 6 -> Correct
Run Code Online (Sandbox Code Playgroud)
但是如果数组包含超过2个项目,那么它就会抛出NaN
,让我知道我在这里做错了什么.
const products = [{
id: "1",
quantity: 3
}, {
id: "2",
quantity: 3
}, {
id: "3",
quantity: 4
}]
console.log(products.reduce((acc, product) => acc.quantity + product.quantity)) // NaN -> InCorrect
Run Code Online (Sandbox Code Playgroud) 以下是我想转换为数组的对象,但似乎我在这里遗漏了一些东西。请让我知道我在这里做错了什么。
代码 -
var langObj = {
"CON1010": {
"countryName": "Poland",
"countryCode": "pl",
"localLanguages": [
{
"language": "English",
"languageCode": "en"
},
{
"language": "Polish",
"languageCode": "en"
}
]
},
"CON1011": {
"countryName": "UK",
"countryCode": "uk",
"localLanguages": [
{
"language": "English",
"languageCode": "en"
}
]
}
};
var res = Object.entries(langObj).map(([value, label]) => ({value, label}));
console.log(res);
Run Code Online (Sandbox Code Playgroud)
预期输出 -
[
{
"CON1010": {
"countryName": "Poland",
"countryCode": "pl",
"localLanguages": [
{
"language": "English",
"languageCode": "en"
},
{
"language": "Polish",
"languageCode": "en"
}
] …
Run Code Online (Sandbox Code Playgroud) 以下是我需要澄清的代码。我希望这段代码能够'mango', 'apple', 'orange'
像选项 2 一样一一进行控制台,但这会抛出另一个输入,我不知道 JavaScript 是如何吐出这个输出的。
const myFunc = (...data) => (data.map(console.log))
myFunc('mango', 'apple', 'orange')
Run Code Online (Sandbox Code Playgroud)
选项 2 -(预期产出)
var myFunc = (...data) => {
data.map(x => {
console.log(x)
})
}
myFunc('mango', 'apple', 'orange')
Run Code Online (Sandbox Code Playgroud)
请纠正我的理解,因为我认为data.map(console.log)
只会记录项目。
以下是返回undefined
但不明白为什么Javascript
松散类型语言undefined
在这里返回的 javascript 代码。内存中到底发生了什么?
var myVar = "My String";
myVar.name = "Test";
console.log(myVar.name);
Run Code Online (Sandbox Code Playgroud)
以下是我的代码 -
应用程序.js
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;
app.get('/api/users', (_req, res) => {
res.send('Hello World');
})
app.listen(PORT, () => {
console.log(`Server running on port: `, PORT);
});
Run Code Online (Sandbox Code Playgroud)
.env文件
PORT=8000
Run Code Online (Sandbox Code Playgroud)
现在,当我通过命令通过终端运行程序时 -node app.js
我正进入(状态 -
Server running on port: 3000
Run Code Online (Sandbox Code Playgroud)
但我希望它在 8000 上运行并从.env文件中选择它。让我知道我在这里做错了什么。
我知道从终端运行时我可以定义PORT=8000
或者app.set()
但我希望从环境文件中选择它。让我知道我在这里/在理解方面做错了什么。
以下是我的反应代码,它显示菜单项,不幸的是我没有得到任何id作为列表中的键添加.作为下文档提到的按键部分,它是应尽量避免Math.random()
.Math.random()
在显示菜单列表时,使用索引作为键是否具有高效性和优势?
代码 -
[{name: 'Home'}, {name: 'About'}, {name: 'News'}, {name: 'Contact'}].map((item, index) => {
return `<li key=${index}>${item.name}</li>`
})
Run Code Online (Sandbox Code Playgroud) 我正在尝试handleChange
对复选框使用单一方法,然后相应地更新它们各自的状态。当我尝试创建动态函数时,调用它的中断。让我知道我在这里做错了什么,可以使用相同的方法更新复选框的检查状态。
失败的功能 -
const handleChange = (event) => {
const target = event.target;
const value = target.checked;
const functionName = `set${target.name}`;
// console.log(functionName) // functionName = setisItem1 or setisItem2
functionName(value);
};
Run Code Online (Sandbox Code Playgroud)
我的沙箱代码 - https://codesandbox.io/s/tender-hooks-guecv?file=/src/App.js[在此处输入链接描述] 1
javascript ×10
ecmascript-6 ×7
reactjs ×5
html ×2
arrays ×1
css ×1
express ×1
loops ×1
node.js ×1
performance ×1
react-hooks ×1
reduce ×1
regex ×1