小编Nes*_*esh的帖子

匹配以首字母开头的字符串,后跟有效的字母字符串 - 正则表达式

我试图匹配一个以 (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)

输出 -

正则表达式 2

javascript regex

2
推荐指数
1
解决办法
881
查看次数

在 JavaScript 中创建数组并填充索引加一

我正在尝试使用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]

让我知道我在这里做错了什么。

javascript arrays ecmascript-6 reactjs

2
推荐指数
1
解决办法
1201
查看次数

元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件),但得到:未定义的 React

以下是给我错误的反应代码 -

错误 -

元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件),但得到:未定义。您可能忘记从定义它的文件中导出组件,或者您可能混淆了默认导入和命名导入。

检查 的渲染方法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

html javascript css ecmascript-6 reactjs

2
推荐指数
1
解决办法
3772
查看次数

一个键的对象的Sum数组在JavaScript中返回超过2个项目的NaN

以下是我的阵列 -

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)

javascript reduce ecmascript-6

1
推荐指数
2
解决办法
51
查看次数

将对象转换为对象数组 Javascript

以下是我想转换为数组的对象,但似乎我在这里遗漏了一些东西。请让我知道我在这里做错了什么。

代码 -

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)

javascript ecmascript-6

1
推荐指数
1
解决办法
31
查看次数

Javascript中不写参数调用方法的捷径

以下是我需要澄清的代码。我希望这段代码能够'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)只会记录项目。

html javascript loops ecmascript-6 reactjs

1
推荐指数
1
解决办法
211
查看次数

将属性分配给javascript中的字符串变量

以下是返回undefined但不明白为什么Javascript松散类型语言undefined在这里返回的 javascript 代码。内存中到底发生了什么?

var myVar = "My String";

myVar.name = "Test"; 

console.log(myVar.name);
Run Code Online (Sandbox Code Playgroud)

javascript

1
推荐指数
1
解决办法
32
查看次数

应用程序未在 .env 文件中定义的端口上运行 | NodeJS

以下是我的代码 -

应用程序.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()但我希望从环境文件中选择它。让我知道我在这里/在理解方面做错了什么。

javascript environment-variables node.js express

1
推荐指数
1
解决办法
2300
查看次数

在React中使用index作为键而不是Math.random()更好吗?

以下是我的反应代码,它显示菜单项,不幸的是我没有得到任何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)

javascript performance ecmascript-6 reactjs

0
推荐指数
1
解决办法
215
查看次数

在 React 中使用 onee 方法动态创建和更新相似状态

我正在尝试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 ecmascript-6 reactjs react-hooks

0
推荐指数
1
解决办法
61
查看次数