如果想将对象数组转换成map集合,需要用到es6的语法。
成都创新互联2013年至今,是专业互联网技术服务公司,拥有项目成都做网站、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元绥宁做网站,已为上家服务,为绥宁各地企业和个人服务,联系电话:18980820575
比如对象数组为let arr = [{a:1,b:2},{a:3,b:4}];
首先我们要获取arr中每个对象的key和value,这里我们可以结合map和Object.entries()两个方法来实现。
let result = [];
arr.map(o={
let map = new Map();
for(let [k, v] of Object.entries(o)){
map.set(k, v);
}
result.push(map);
});
最终result就是转换后的map集合了。
所谓类数组对象,通俗的说就是具有数组的某些特性,使用上非常类似于数组。
比如使用getElementsByTagName()方法获取的dom元素集合,下面就介绍一下如何利用jQuery将其转换为数组。
代码实例如下:
!DOCTYPE html
html
head
meta charset=" utf-8"
meta name="author" content="" /
title/title
script src="jquery.js"/script
script type="text/javascript"
$(function(){
$("#bt").click(function(){
var lis=document.getElementsByTagName("li");
var arr=$.makeArray(lis);
arr.reverse();
$(arr).appendTo(document.body);
})
});
/script
/head
body
input type="button" id="bt" value="查看效果"/
ul
li今天天气很冷/li
li陈雨/li
/ul
/body
/html
程序代码如下:
script type="text/javascript"
function test(){
alert(arguments)
arguments = Array.prototype.slice.call(arguments);
alert(arguments instanceof Array);
alert(arguments)
}
test(1,2,3,4);
//※※※※※※※※※※※测试2※※※※※※※※※※※※※※
var htmlcollection = document.getElementsByTagName("h3");
alert(htmlcollection)
try{
htmlcollection = Array.prototype.slice.call(htmlcollection);
alert(htmlcollection instanceof Array);
alert(htmlcollection);
}catch(e){
alert(e)
}
//※※※※※※※※※※※测试3※※※※※※※※※※※※※※
var sheets = document.styleSheets;
alert(sheets)
try{
sheets = Array.prototype.slice.call(sheets);
alert(sheets instanceof Array);
alert(sheets);
}catch(e){
alert(e)
}
alert(arrayLike)
arrayLike = Array.prototype.slice.call(arrayLike);
alert(arrayLike instanceof Array);
alert(arrayLike);
/script
jQuery对象是一组元素的集合,不是一个的。而offset方法没有each。因为每个元素的偏移可能不一样。你应该这样用each取得每个元素的偏移: img.each(function() { var offsetTop = $(this).offset().top; console.log(offsetTop); })这样会在控制.
直接用js的eval方法就可以了
var a = eval("[{age:18, name:"cheng"}]");