需要访问每个循环 jQuery 之外的变量

Need to access a variable outside of a jQuery each loop

本文关键字:变量 jQuery 循环 访问      更新时间:2023-09-26

所以我有一个 json 字符串看起来像这样

var jsonString = '[{"name":"John Smith","uid":1234,{"name":"Susie Something","uid":4567"}]';

我正在制作一个函数,它将返回所有用逗号分隔的 UID。所以例如:1234,4567.

我现在做的是这个

function getUIDS(json){
var uids = '';
parsed = JSON.parse(json);
$.each(friends, function() {
        uids = uids + this.uid.toString() + ',';
 });
 reuturn uids;
}

但是,什么也没回来。如何访问由 jquery 线程在 jquery 线程之外创建的变量。

传递

解析而不是朋友,如果这是完整的代码并且朋友没有在任何地方定义

function getUIDS(json){
var uids = '';
parsed = JSON.parse(json);
$.each(parsed, function() {
        uids = uids + this.uid.toString() + ',';
 });
 reuturn uids;
}

尝试修复您的 json:

var jsonString = '[{"name":"John Smith","uid":1234},{"name":"Susie Something","uid":4567"}]';

并稍微更改您的代码:

function getUIDS(json) {
   var uids = '',
       friends = JSON.parse(json);
   $.each(friends, function() {
       uids += this.uid + ',';
   });
   return uids;
}

重要的部分循环friends并正确拼写return

您还应该考虑按照某人的建议使用join。这将确保您不会在uids字符串的末尾获得尾随的","(除非这是您想要的)。

尝试:

function getUIDS(json){
  var uids = [];
  var friends = JSON.parse(json);
  $.each(friends, function(i) {
     uids.push(friends[i].uid);
  });
  return uids.join(',');
}

代码中的问题有:(请参阅代码注释)

function getUIDS(json){
var uids = '';
parsed = JSON.parse(json);
$.each(friends, function() { // using friends instead of parsed
        uids = uids + this.uid.toString() + ','; // using this here
 });
 reuturn uids; // spelling mistake for return keyword
}