第一组数据是按
Project
展示,而转换后的数据是按
Month
进行展示。
const transferArrayStructure = function (arr, detail, title, name) {
let nArr = arr.map(item => {
return item[detail].map(value => {
value.tempName = item[title]
return value
let obj = {}
nArr.map(item => {
item.map(i => {
let key = i[name]
obj[key] = (key in obj) ? obj[key] : []
i[name] = i.tempName
delete i.tempName
obj[key].push(i)
let dataList = []
Object.keys(obj).map(item => {
let o = {}
o[title] = item
o[detail] = obj[item]
dataList.push(o)
return dataList
// 最近接触到map方法,发现是一个极好用到方法,便用map代替了原本到forEach或者for...in操作。
// map方法操作到数组中到元素如果是一个引用值到话,并对其进行修改到话是会影响到原数组到。
// 判断对象是否有某个属性
因项目需求,有一组数据需要前段自己进行转换。原数据格式为`var projectArr = [ { title: '万景成', detail: [ { name: '2018-10', a: 100, b: 200 }, { name: '2018-09', ...
let txt='[{"sender":"tuser1","agentid":"155889886","ip":"*"},
{"sender
JavaScript类型化数组是一种类似数组的对象,并提供了一种用于访问原始二进制数据的机制。
Array 存储的对象能动态增多和减少,并且可以存储任何JavaScript值。JavaScript引擎会做一些内部优化,以便对数组的操作可以很快。
一般而言,类型化数组通常会与WebGL一起使用,在使用WebGL的时候,ArrayBuffer无处不在。浏览器通过WebGL和显卡进行通信,它们之间会发生大量的、实时的数据交互,对性能的要求特别高,它们之间的数据通信必须是二进制的才能满足性能要求,而不能是传统的.
const arr = [1, 2, 2, 3, 3, 4, 5];
const uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr); // [1, 2, 3, 4, 5]
2. 使用 filter 方法去重
使用 filter 方法可以对数组中的每个元素进行过滤,返回一个新的数组。
const arr = [1, 2, 2, 3, 3, 4, 5];
const uniqueArr = arr.filter((item, index, arr) => {
return arr.indexOf(item) === index;
console.log(uniqueArr); // [1, 2, 3, 4, 5]
3. 使用 reduce 方法去重
reduce 方法可以将数组中的每个元素聚合成一个值,我们可以利用 reduce 方法去重。
const arr = [1, 2, 2, 3, 3, 4, 5];
const uniqueArr = arr.reduce((prev, cur) => {
if (prev.indexOf(cur) === -1) {
prev.push(cur);
return prev;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
以上三种方法都可以实现 JavaScript 数组去重。