方法二改进:
let arrnew = arrold.map((item,index) => {
return Object.assign({},{'name':item.name})
关于Object.assign(target,sources)方法:拷贝源对象且可枚举的属性到目标对象,如果目标对象中的属性具有相同的键,则属性将被源中的属性覆盖。例:
const object1 = { a: 1, b: 2, c: 3 };
// object2: a=1, b=2, c=3, d=5
const object2 = Object.assign({c: 4, d: 5}, object1);
例:arrold = [ {name: "name1", age: "1"}, {name: "name2", age: "2"}, {name: "name3", age: "3"}, {name: "name4", age: "4"}, {name: "name5", age: "5"}, {name: "name6", age: "6"}]arrnew = ["name1","name2","name3","name4","name5","name6"]方法一
用于数组的浅拷贝。就是将一个类数组对象或者可遍历对象转换成一个真正的数组。
object中必须有length属性,返回的数组长度取决于length长度, key 值必须是数值
let obj = {
0: '1',
1: '2',
2: '3',
'length': 3
let arr = Array.from(obj)
console.log(arr);
//[1,2,3]
2、Object.keys(
alert([]===[]); // false
以上两句代码都会弹出false。
因为JavaScript里面Array是对象,==或===操作符只能比较两个对象是否是同一个实例,也就是是否是同一个对象引用。目前JavaScript没有内置的操作符判断对象的内容是否相同。
但是惯性思维让人以为数组也是值,是可以比较的。
如果要比较数组是否相等,就只能遍历数组元素比较。
在网上流传很普遍的一种做法是将数组转换成字符串:
JSON.stringify(
const arr = [{name: 'Alice', age: 20}, {name: 'Bob', age: 30}, {name: 'Charlie', age: 40}];
const ages = arr.map(item => item.age);
console.log(ages); // [20, 30, 40]
这样就可以提取出数组中所有对象的 age 属性值了。