gpt4 book ai didi

javascript - 如何连接从 api 接收到的字符串

转载 作者:行者123 更新时间:2023-11-29 17:34:48 25 4
gpt4 key购买 nike

我想突出显示“文本”元素句子中“突出显示”元素中的单词。我可以成功突出显示一个句子,但无法将两个或多个句子连接在一起。我只能显示一个句子,它是用代码突出显示的单词:

this.setState({
text: result[0].text,
highlight: result[0].highlight,
});

但一次不能超过 more sentence。我想用突出显示的单词动态连接 api 中尽可能多的句子。我尝试将状态设置为 text: result[].texthighlight: result[].highlight 但它给了我错误。正如您在 this sandbox 中看到的那样,只有当你执行 result[0].textresult[1].text 时,你会得到不同的结果,但我想连接api动态假设我以后会有更多的句子。

react 代码如下所示:

import React, { Component } from "react";
import { render } from "react-dom";

import "./App.css";

const stripChars = word => word.replace(/[\W_]+/g, "");

class App extends Component {
state = {
text: "The gun is a dangerous weapon, don't kill anyone",
highlight: ["gun", "kill"]
// text: "",
// highlight: []
};

componentDidMount() {
fetch("https://api.myjson.com/bins/1ep1fh")
.then(res => res.json())
.then(result => {
console.log(result);
this.setState({
text: result[0].text,
highlight: result[0].highlight
});
});
}
render() {
const { text, highlight } = this.state;
const words = text.split(" ");
return (
<div>
{words.map((word, i) => (
<span key={i}>
<span
className={highlight.includes(stripChars(word)) && "highlight"}
>
{word}
</span>
&nbsp;
</span>
))}
</div>
);
}
}

export default App;

CSS 文件:

.highlight{
background: red;
}

最佳答案

您可以在 api 调用中使用 Array.Mapjoin() 来迭代和展平数组:

  componentDidMount() {
fetch("https://api.myjson.com/bins/1ep1fh")
.then(res => res.json())
.then(result => {
let texts = result
.map((el, i) => {
return el.text;
})
.join("");
let highlights = result
.map((el, i) => {
return el.highlight;
})
.join("").split(",");
console.log(highlights);
this.setState({
text: texts,
highlight: highlights
});
});
}

result

关于javascript - 如何连接从 api 接收到的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57866874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com