我想正如標題所說,所以我想到了一個簡短的方法做到這一點。但它不起作用:循環列表如果一個列表或一個新的列表中有對象,如果一個對象
var json = "{\"prop\": \"value\"}";
(JSON.parse(json).forEach ? JSON.parse(json) : [JSON.parse(json)]).forEach(function(item) {
alert('Looped');
});
爲什麼不能正常工作? Fiddle
我想正如標題所說,所以我想到了一個簡短的方法做到這一點。但它不起作用:循環列表如果一個列表或一個新的列表中有對象,如果一個對象
var json = "{\"prop\": \"value\"}";
(JSON.parse(json).forEach ? JSON.parse(json) : [JSON.parse(json)]).forEach(function(item) {
alert('Looped');
});
爲什麼不能正常工作? Fiddle
Array.isArray()
就派上用場了這裏:
var json = '{"prop": "value"}';
var parsedJson = JSON.parse(json);
var myArray = Array.isArray(parsedJson) ? parsedJson : [parsedJson];
myArray.forEach(function(item) {
console.log('looped');
});
我知道這個解決方案。我只是好奇爲什麼不會挖掘工作。不管怎麼說,還是要謝謝你。 –
如果在三元運算符之後添加缺少的括號並修復JSON,則可以使用此解決方案:https://jsfiddle.net/3ds8xf9h/ - 仍然沒有必要檢查解析的JSON是否爲數組檢查它是否有'forEach'函數。 – Timo
哦,是的,趕到寫例如當。 –
你爲什麼決定它不起作用?它像預期的那樣提示'循環' – RomanPerekhrest
顯然它只是一個支架錯字。投票結束。 –