Js数组
转化数组到文件中去
fs.writeFile('pointgroup/ijorder.js',JSON.stringify(ijorder), (err) => {
if(err){
log('An error ocurred creating the file '+ err.message);
}
})
//JSON.stringify(ijorder) 这个是关键, 这个会把数组ijorder正确的输出到文件里面.
判断一个值是否在数组中
["foo", "bar", "baz"].indexOf("bar") //=> 1
['joe', 'jane', 'mary'].includes('jane');//true
//如果这两种方法有效率问题, 就可以翻转为key - value的存储方式
key value形式的数组
const log = console.log
const a = []
a[9]=1
a[6] =1
const b=[]
b[5] =1
b[4] =1
let c=a.concat(b)
function show(t) {
for (const key in t) {
log("t[key]: ",key, " t:", t[key])
}
log("t: ", t)
}
log("a: ", a)
show(a)
log("b: ", b)
show(b)
log("c: ", c)
show(c)
//输出令人伤心
a: [ <6 empty items>, 1, <2 empty items>, 1 ]
t[key]: 6 t: 1
t[key]: 9 t: 1
t: [ <6 empty items>, 1, <2 empty items>, 1 ]
b: [ <4 empty items>, 1, 1 ]
t[key]: 4 t: 1
t[key]: 5 t: 1
t: [ <4 empty items>, 1, 1 ]
c: [ <6 empty items>, 1, <2 empty items>, 1, <4 empty items>, 1, 1 ]
t[key]: 6 t: 1
t[key]: 9 t: 1
t[key]: 14 t: 1
t[key]: 15 t: 1
t: [ <6 empty items>, 1, <2 empty items>, 1, <4 empty items>, 1, 1 ]
也就是说 数组直接用key-value形式, 不能concat
把key换成字符串, 结局依旧令人悲伤:
const a = []
a['9']=1
a['6'] =1
const b=[]
b['5'] =1
b['4'] =1
//这么搞, 输出结果和刚才一毛一样.
const a = []
a['s9']=1
a['s6'] =1
const b=[]
b['s5'] =1
b['s4'] =1
//这么搞, 结局更加令人悲伤, c干脆就是空[]了, 也就说concat不支持非正整数索引
如果使用对象是否会好一点? 对象的合并是个麻烦事.
如果使用map呢? 貌似map可能是圣杯. 但是, 我先用array吧, 如果array没有效率问题就这样吧.