我有一个JSON字符串:
var Str="[{ 'label': 'Month'},{ label: 'within'},{ label: 'From'},
{ label: 'Where'},]";
Run Code Online (Sandbox Code Playgroud)
我通过eval将它转换为对象:
var tagString = eval(Str);
Run Code Online (Sandbox Code Playgroud)
我想得到没有循环的月份索引.
有没有更好的方法来获取数组中的对象的索引而不使用循环?
提前致谢!
Eri*_*ric 25
不要解析json eval
!使用JSON.parse
.Array.map
这是循环的一个很好的替代方案:
var str = '[{ "label": "Month"}, { "label": "within"}, { "label": "From"}, { "label": "Where"}]';
var data = JSON.parse(str);
var index = data.map(function(d) { return d['label']; }).indexOf('Month')
Run Code Online (Sandbox Code Playgroud)
Jos*_*eph 14
如果这些都是标签,你可以改变这样的结构,所以它是"一系列标签",在我看来,这将更合适.
var Str = '["Month","within","From","Where"]';
Run Code Online (Sandbox Code Playgroud)
然后用它来解析它们JSON.parse
,或者因为你使用jQuery,$.parseJSON
让它在更多的浏览器上工作:
var labels = JSON.parse(Str);
Run Code Online (Sandbox Code Playgroud)
labels
现在应该是一个数组,你可以使用Array.indexOf
.
var index = labels.indexOf('Month');
Run Code Online (Sandbox Code Playgroud)
它是ES5,大多数现代浏览器都支持它.对于较旧的浏览器,您需要一个polyfill,不幸的是...也使用循环.
归档时间: |
|
查看次数: |
71179 次 |
最近记录: |