我有下面的代码,它执行嵌套JSON的所有键和值。它的工作正常,但是每当任何键的值为空时,代码就会在减少函数处中断。我也想显示空值。我试图在其他情况下处理空和未定义的场景,但这不起作用。下面是我写的代码。这一定是我错过的一个小变化。
const myObj = {
"key1": "value1",
"key2": null,
"key3": "value3",
"key4": {
"k1": "val1",
"k2": {
"p1": "v1",
"p2": "v2",
"p3": "v3"
}
}
}
class Details extends React.component{
constructor(){
this.getValues = this.getValues.bind(this);
}
getValues() {
return (
<div key={k} className="row">
<div className="col-xs-6">{k}</div>
<div className="col-xs-6">{v}</div>
</div>
)
}
generateData(myObj) {
const newData = Object.keys(myObj).reduce((result, currentKey) => {
if (typeof myObj[currentKey] === 'string' || myObj[currentKey] instanceof String) {
const elementToPush = getValues(currentKey, myObj[currentKey]);
result.push(elementToPush);
} else {
const nested = generateData(myObj[currentKey]);
result.push(...nested);
}
return result;
}, []);
return newData;
}
render() {
return (
<div>
<Header />
<div className="content">
{this.generateData(myObj)}
</div>
</div>
)
}
}
这是你所期待的吗?
const newData = Object.keys(myObj).reduce((result, currentKey) => {
if (typeof myObj[currentKey] === 'string' || myObj[currentKey] instanceof String) {
const elementToPush = getValues(currentKey, myObj[currentKey]);
result.push(elementToPush);
} else if(!myObj[currentKey]) {
const nullElementToPush = getValues(currentKey, "null");
result.push(nullElementToPush);
} else {
const nested = generateData(myObj[currentKey]);
result.push(...nested);
}
return result;
}, []);
我有一个具有20个属性的对象。 其中有些属性设置为值,有些未定义。当I!如何将未显示键值的设置为?
问题内容: 我有一些JSON数据,但所有键都为大写。如何解析它们并将键转换为更低的键?我正在使用jQuery。 例如: JSON数据: 所需的输出: 问题答案: 这个怎么样: 正则表达式捕获键名$ 1并将其转换为小写。 现场演示:http : //jsfiddle.net/bHz7x/1/ [edit]要解决@FabrícioMatté的评论,另一个仅匹配文字字符的演示: http //jsfid
问题内容: 工具:Reactjs 0.14.0 Vanilla Flux 我需要唯一标识符的原因有两个: 儿童和解 跟踪点击了哪个孩子 因此,假设我有一个看起来像这样的消息列表: 现在,我使用“ Array.prototype.map()” 在所有者组件内部创建“ ownee” 组件() 但是this.props.key在MessageListItem中是未定义的,即使我知道在传递时已定义的事实也
我从一个API获得一个对象,并在它里面用其他API响应创建新的对象,例如: API响应1: API响应2: 当我试图在属性的之后给出时,我无法访问创建的属性,返回。但是,当我为任何对象提供时,所创建的属性就在那里。
我是Hadoop和Java的新手,我觉得我明显缺少了一些东西。如果这意味着什么的话,我正在使用Hadoop 1.0.3。 我使用hadoop的目标是获取一堆文件并一次解析一个文件(而不是逐行)。每个文件将生成多个键值,但其他行的上下文很重要。键和值是多值/复合的,因此我为键实现了可写比较,为值实现了可写。由于每个文件的处理需要一点 CPU,因此我想保存映射器的输出,然后稍后运行多个化简器。 对于复
问题内容: 我以为这是很普通的事情,但是我找不到如何在AngularJS中处理它。假设我有一个事件列表,想用AngularJS输出它们,那很简单: 但是,当列表为空时如何处理?我想要一个消息框,其中的列表带有类似“无事件”或类似内容。唯一接近的是with (如何检查对象而不是数组时是否为空?),但这真的是我唯一的选择吗? 问题答案: 您可以使用ngShow。 参见示例。 或者您可以使用ngHide