我尝试使用reduce在一个字符串中连接页面上每个段落标记的内部HTML。这是我的尝试:
// JS
let par = Array.from(document.getElementsByTagName("p"));
document.write(par.reduce((a, b) => a + ", " + b.innerHTML));

<!-- HTML -->
<p>Apple</p>
<p>Strawberry</p>
<p>Banana</p>
&#13;
这是(错误的)输出:
[object HTMLParagraphElement],Strawberry,Banana
我做错了什么?
非常感谢你的帮助!
答案 0 :(得分:3)
function(){
var ec = {{Click Element}};
var x = $(ec).closest('span');
return x.innerText;
}
函数接受第二个参数,它是reduce
的初始值。
默认情况下,它是数组中的第一项。
要获得所需的结果,您应该编写如下代码:
accumulator
以下是来自MDN的let par = Array.from(document.getElementsByTagName("p"));
document.write(par.reduce((a,b)=>a+", "+b.innerHTML, ""));
函数的文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce?v=a
答案 1 :(得分:2)
您应该为reduce
方法传递第二个参数(初始值):
par.reduce((a,b)=>a+", "+b.innerHTML, '')
答案 2 :(得分:0)
如下:
let par = Array.from(document.getElementsByTagName("p"));
document.write(par.map(a=> a.innerHTML).join())
答案 3 :(得分:0)
正如@hsz所写,你应该使用空字符串累加器来使你的例子工作:
let par = Array.from(document.getElementsByTagName("p"));
document.write(par.reduce(par.reduce((a,b) => a + ", " + b.innerHTML, '');
但您也可以先映射数组并获取innerHTML属性,然后减少
let par = Array.from(document.getElementsByTagName("p"));
document.write(par.map(a => a.innerHTML).reduce((a, b) => a + ", " + b));
答案 4 :(得分:0)
一个好的解决方案是使用reduce
创建一个包含段落实际内容的数组。
然后通过使用/* Cache the p elements found. */
let pElems = document.getElementsByTagName("p");
/* Create an array containing the innerHTML of each 'p' element. */
let par = [].map.call(pElems, (a)=>a.innerHTML);
/* Use 'reduce' to combine them (passing the emoty string as the accumulator. */
document.write(par.reduce((a, b) => a + ", " + b), "");
,将空字符串作为累加器(第二个参数)传递,您可以获得组合内容的字符串。
<强>脚本:强>
<!-- HTML -->
<p>Apple</p>
<p>Strawberry</p>
<p>Banana</p>
&#13;
document.write([].map.call(document.getElementsByTagName("p"), (a)=>a.innerHTML).reduce((a, b) => a + ", " + b), "");
&#13;
<强>一衬垫:强>
<!-- HTML -->
<p>Apple</p>
<p>Strawberry</p>
<p>Banana</p>
&#13;
import numpy as np, pandas as pd
df=pd.DataFrame()
df['a']=np.arange(0,9)
df.iloc[0,0]='test'
print(df.dtypes)
print(type(df.iloc[0,0]))
print(type(df.iloc[1,0]))
&#13;