没有数组时如何使用forEach[JavaScript]

没有数组时如何使用forEach[JavaScript],javascript,Javascript,我想在JavaScript中使用forEach 句子功能价值{---- 当句子是数组时,forEach可以正常工作 { "sentence": [ { "word": [ { "content": "tell" }, { "content": "me"

我想在JavaScript中使用forEach

句子功能价值{----

当句子是数组时,forEach可以正常工作

{
    "sentence": [
        {
            "word": [
                {
                    "content": "tell"
                },
                {
                    "content": "me"
                }
            ]
        },
        {
            "word": [
                {
                    "content": "do"
                },
                {
                    "content": "you"
                },
                {
                    "content": "want"
                }
            ]
        }
    ]
}
然而,当句子只有一个值并且不是数组时,forEach不工作,它会发出如下错误消息


我从外部API获取json对象,所以我不知道句子是只有一个值还是有多个值。我如何解决这个问题?您能给我一些信息或建议吗?

确保始终有一个数组,如果没有,则将其转换为数组。您可以执行以下操作:

const sentenceArray = Array.isArray(sentence) ? sentence : [sentence];
然后使用sentenceArray,如下所示:

sentenceArray.forEach(...

确保始终具有数组,如果没有,请将其转换为数组。您可以执行以下操作:

const sentenceArray = Array.isArray(sentence) ? sentence : [sentence];
然后使用sentenceArray,如下所示:

sentenceArray.forEach(...

如果数据不是数组,则可以使用将其转换为数组,或者保留该数组

[].concat(data).forEach(callback);
要使用这种方法,可以将其包装在函数getArray中

常数 getArray=value=>[]。concatvalue, 回调={word}=> getArrayword.forEach{content}=>console.logcontent, a={句子:[{word:[{content:tell},{content:me}]},{word:[{content:do},{content:you},{content:want}]}, b={句子:{单词:{内容:你好}}}; getArraya.station.forEachcallback;
getArrayb.Session.forEachcallback;如果数据不是数组,则可以将其转换为数组,或者保留该数组

[].concat(data).forEach(callback);
要使用这种方法,可以将其包装在函数getArray中

常数 getArray=value=>[]。concatvalue, 回调={word}=> getArrayword.forEach{content}=>console.logcontent, a={句子:[{word:[{content:tell},{content:me}]},{word:[{content:do},{content:you},{content:want}]}, b={句子:{单词:{内容:你好}}}; getArraya.station.forEachcallback;
getArrayb.Session.forEachcallback;有条件地拆分代码

if(Array.isArray(sentence)
{
 //your foreach
}
else
{
 //pick relevant properties from sentence object
}

有条件地拆分代码

if(Array.isArray(sentence)
{
 //your foreach
}
else
{
 //pick relevant properties from sentence object
}

有时返回数组,有时返回单个对象的API应取出并拍摄。有时返回数组,有时返回单个对象的API应取出并拍摄。不确定为什么被否决,这是一种同样有效的方法。不确定为什么被否决,这是一种同样有效的方法。谢谢非常感谢你的帮助。你能告诉我句子和[]之间的关系吗。concatdata?我如何使用[]。concatdata?非常感谢你的帮助。你能告诉我句子和[]。concatdata之间的关系吗?我如何使用[]。concatdata?非常感谢你的建议。我有一个问题。句子:[句子];这是什么意思?这是不是意味着如果句子不是数组,就把句子变成数组?@Kazuakizuki基本上是的。如果句子是数组,它将只使用句子值“原样”,否则它将通过执行[句子]生成一个包含单个元素的数组。如果你不熟悉这种写有条件作业的方式,你可以看看这里:@atarhan谢谢你的快速回复。我理解。非常感谢你的建议。我有一个问题。?句子:[句子];这是什么意思?这是不是意味着如果句子不是数组,就把句子变成数组?@Kazuakizuki基本上是的。如果句子是数组,它将只使用句子值“原样”,否则它将通过执行[句子]生成一个包含单个元素的数组。如果你不熟悉这种写条件作业的方式,你可以看看这里:@atarhan谢谢你的快速回复。我理解。