我想迭代地图的所有值.我知道可以迭代所有键.但是可以直接迭代值吗?
var map = { key1 : 'value1', key2 : 'value2' }
for (var key in map) { ...} // iterates over keys
Run Code Online (Sandbox Code Playgroud) 我试图显示基于JSON数据的"排行榜"表.
我已经阅读了很多关于JSON格式并克服了一些初步障碍,但我的Javascript知识非常有限,我需要帮助!
基本上我的JSON数据看起来像这样:
[{"User_Name":"John Doe","score":"10","team":"1"},{"User_Name":"Jane Smith","score":"15","team":"2"},{"User_Name":"Chuck Berry","score":"12","team":"2"}]
Run Code Online (Sandbox Code Playgroud)
我需要的是能够遍历这个数组,为每个对象生成一个表行或列表项.数组中将有未知数量的总对象,但每个对象具有相同的格式 - 三个值:Name,Score,Team.
到目前为止,我使用了以下代码,确认我已成功加载控制台中的对象 -
$.getJSON(url,
function(data){
console.log(data);
});
Run Code Online (Sandbox Code Playgroud)
但我不知道如何迭代它们,将它们解析为HTML表格.
下一步是按降序按分数对条目进行排序...
任何帮助将非常感激.谢谢!
编辑:
下面更新了代码,这有效:
$.getJSON(url,
function (data) {
var tr;
for (var i = 0; i < data.length; i++) {
tr = $('<tr/>');
tr.append("<td>" + data[i].User_Name + "</td>");
tr.append("<td>" + data[i].score + "</td>");
tr.append("<td>" + data[i].team + "</td>");
$('table').append(tr);
}
});
Run Code Online (Sandbox Code Playgroud)
($ .parseJSON不是必需的,我们可以使用'data',因为我已经解析了JSON数组)
我试图迭代以下json:
{
"VERSION" : "2006-10-27.a",
"JOBNAME" : "EXEC_",
"JOBHOST" : "Test",
"LSFQUEUE" : "45",
"LSFLIMIT" : "2006-10-27",
"NEWUSER" : "3",
"NEWGROUP" : "2",
"NEWMODUS" : "640"
}
Run Code Online (Sandbox Code Playgroud)
这里的关键是动态的.我想要两个键=?和价值=?
我已经使用Apache 301重定向将SEO URL实现到网站根目录中的"redirect.cfm",该网站处理所有URL构建和内容交付.
在301重定向期间,发布数据会丢失.
到目前为止还无法找到解决方案,尝试从重写中排除post方法 - 最坏的情况我们可以使用旧类型的URL来进行post方法.
有什么可以做的吗?
谢谢
我正在使用ACE编辑器进行交互式JavaScript编辑.当我将编辑器设置为JavaScript模式时,ACE会自动确定代码是否有效,并且错误消息和行号不会突出显示.
在change
事件处理程序期间,我想在我尝试之前检测ACE是否认为代码有效eval()
.我认为我可以这样做的唯一方法是:
var jsMode = require("ace/mode/javascript").Mode;
var editor = ace.edit('mycode'), edEl = document.querySelector('#mycode');
editor.getSession().setMode(new jsMode);
editor.getSession().on('change',function(){
// bail out if ACE thinks there's an error
if (edEl.querySelector('div.ace_gutter-cell.ace_error')) return;
try{
eval(editor.getSession().getValue());
}catch(e){}
});
Run Code Online (Sandbox Code Playgroud)
然而:
change
回调发生.因此,我实际上必须等待超过500毫秒(JavaScript工作人员开始之前的延迟):
editor.getSession().on('change',function(){
setTimeout(function(){
// bail out if ACE thinks there's an error
if (edEl.querySelector('div.ace_gutter-cell.ace_error')) return;
try{
eval(editor.getSession().getValue());
}catch(e){}
},550); // Must be longer than timeout delay in javascript_worker.js
});
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法,在JS模式的未记录的API中,询问是否有任何错误?
我有一个我想要迭代的JSON对象.
"phone": {
"Samsung": {
"type": "S7"
},
"iPhone": {
"type": "6S"
},
"Google": {
"type": "Pixel"
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Object.key
这些值映射每个值,我认为这是使用对象的正确方法:
render() {
//this.props.phone contains the objects "Samsung", "iPhone", and "Google"
return (
Object.keys(this.props.phones).map((type) => {
console.log(type)
return (
<p>Type of phone: {type}</p>
)
})
)
}
Run Code Online (Sandbox Code Playgroud)
但是,console.log
当我期待一个对象返回时,上面的内容会返回:
为什么它返回一个值,而不是一个对象?
如何在TypeScript中循环遍历类的属性?以下面的类为例:
export class Task implements Itask {
public Id: number = 0;
public Name: string;
public Description: string;
public Completed: boolean = false;
public TaskType: TaskType;
}
Run Code Online (Sandbox Code Playgroud)
我想检索属性,因此:["Id","Name","Description","Completed","TaskType"]
试着
GetTaskHeaders = () => {
const _self = this;
const tHead = $('<thead />').append('<tr />');
for (let i = 0; typeof TodoApp.Task.arguments; i++) {
const th = $('<th />');
th.append(TodoApp.Task.arguments[i]);
tHead.append(th);
}
console.log(tHead);
return tHead;
};
Run Code Online (Sandbox Code Playgroud)
不幸的是没有成功,我知道使用"TodoApp.Task.arguments"是不正确的.但是,有人能告诉我正确的方法吗?
我知道我可以使用jQuery和$.post()
语法进行带外Post请求.但是,我很想知道jQuery是否可能在整个页面上引发发布请求(就像提交表单时那样),以便加载一个全新的页面.这可能吗?
DOM中没有表单元素,因此我无法执行form.submit().
是否有任何js函数将数组转换为urlencoded?我是JS的全新人......谢谢!...
我的数组是一个键和值数组....所以,
myData=new Array('id'=>'354313','fname'=>'Henry','lname'=>'Ford');
Run Code Online (Sandbox Code Playgroud)
是相同的
myData['id']='354313';
myData['fname']='Henry';
myData['lname']='Ford';
myData.join('&'); //returns error, it doesn't work on such array...
Run Code Online (Sandbox Code Playgroud)
有什么办法吗?
哦,sory ...我有一个像这样的阵列
var myData=new Array('id'=>'354313','fname'=>'Henry','lname'=>'Ford');
Run Code Online (Sandbox Code Playgroud)
然后我需要转换为的数组:
id=354313&fname=Henry&lname=Ford
Run Code Online (Sandbox Code Playgroud) 可能重复:
循环访问JavaScript对象
获取对象键的数组
有没有办法在javascript中使用hashmaps.我发现这个页面显示了在javascript中使用hashmaps的一种方法.基于此我将数据存储如下:
var map = new Object();
map[myKey1] = myObj1;
map[myKey2] = myObj2;
function get(k) {
return map[k];
}
Run Code Online (Sandbox Code Playgroud)
但我想要对象的keySet(所有键)map
就像在Java(map.keySet();
)中完成一样.
任何人都可以告诉我如何获得此对象中的所有键?
javascript ×7
arrays ×2
jquery ×2
json ×2
ace-editor ×1
apache ×1
dictionary ×1
ecmascript-6 ×1
html ×1
http-post ×1
post ×1
reactjs ×1
reflection ×1
rewrite ×1
typescript ×1
urlencode ×1