1. 根据属性值检索对象数组
找到对象数组中健名为name的的健值对的键值为solid的那个对象。
js
var a = [{
name: "zain",
age: 28
},
{
name: "jack",
age: 29
},
{
name: "sank",
age: 30
},
{
name: "solid",
age: 31
}
];
function test() {
a.forEach(element => {
if (element.name == "solid") {
if (a.indexOf(element) > -1) {
var i = a.indexOf(element);
a.splice(i, 1);
}
}
});
}
test();
console.log(a);var a = [{
name: "zain",
age: 28
},
{
name: "jack",
age: 29
},
{
name: "sank",
age: 30
},
{
name: "solid",
age: 31
}
];
function test() {
a.forEach(element => {
if (element.name == "solid") {
if (a.indexOf(element) > -1) {
var i = a.indexOf(element);
a.splice(i, 1);
}
}
});
}
test();
console.log(a);3. 求对象数组中,其中一个属性的和
这里使用Vue模板为例子:
- data()中:
js
this.LivetableData =
[
{
je: '100',//注意要求和的值是字符串类型!
se: 123,
},{
je: 200,
se: '123',
},{
je: '300',
se: 123,
}
]this.LivetableData =
[
{
je: '100',//注意要求和的值是字符串类型!
se: 123,
},{
je: 200,
se: '123',
},{
je: '300',
se: 123,
}
]- methods中:
js
SumSubmit() {
//首先将要求和的String类型转换为Number类型
for (var i = 0; i < this.LivetableData.length; i++) {
this.LivetableData[i].je = Number(this.LivetableData[i].je)
}
//然后提取需要的属性
let arrnew = this.LivetableData.map((item, index) => {
return Object.assign({}, {
'je': item.je
})
})
//求和函数
function sum(arr) {
var s = 0;
for (var i = 0; i < arr.length; i++) {
s += arr[i];
}
return s;
}
//提取对象数组为数组,求和
console.log(sum(arrnew.map(item => item.je))) //打印
}SumSubmit() {
//首先将要求和的String类型转换为Number类型
for (var i = 0; i < this.LivetableData.length; i++) {
this.LivetableData[i].je = Number(this.LivetableData[i].je)
}
//然后提取需要的属性
let arrnew = this.LivetableData.map((item, index) => {
return Object.assign({}, {
'je': item.je
})
})
//求和函数
function sum(arr) {
var s = 0;
for (var i = 0; i < arr.length; i++) {
s += arr[i];
}
return s;
}
//提取对象数组为数组,求和
console.log(sum(arrnew.map(item => item.je))) //打印
}4. 提取对象数组中的某一个属性组成新数组
js
//初始对象数组
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"]//初始对象数组
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"]- 方法一:
js
let arr = [];
arrold.forEach(e => {
arrnew.push(e.name)
})let arr = [];
arrold.forEach(e => {
arrnew.push(e.name)
})- 方法二:
js
let arrnew = arrold.map((obj,index) => {
return obj.name;
}).join(",").split(',')let arrnew = arrold.map((obj,index) => {
return obj.name;
}).join(",").split(',')- 方法二改进:
js
let arrnew = arrold.map((item,index) => {
return Object.assign({},{'name':item.name})
})let arrnew = arrold.map((item,index) => {
return Object.assign({},{'name':item.name})
})关于Object.assign(target,sources)方法
拷贝源对象且可枚举的属性到目标对象,如果目标对象中的属性具有相同的键,则属性将被源中的属性覆盖。例:
js
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);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);- 方法三:
js
var arrnew = arrold.map(a => a.name);
console.log(arrnew) //仅由键值对的值构成的数组:[梁远东,谈畅,XXX]var arrnew = arrold.map(a => a.name);
console.log(arrnew) //仅由键值对的值构成的数组:[梁远东,谈畅,XXX]
liang14658fox